あなたの「輸入後」という基準からすると、回避する条件apply
と家族は非常に恣意的なものに思えます。そのためのあなたの論理に興味があります。
とにかく、あなたの固有の条件を尊重するデータをすでにインポートした後に問題を解決するための代替手段は次のとおりです。
- で、ご家族
class
で使える新しいものをつくります。colClasses
read.table
do.call(paste, ...)
既存のdata.frame
ものをタブ区切りの文字ベクトルに折りたたむために使用します。
colClasses
この時間を指定して、その文字ベクトルを再度読み取ります。
例として上記を次に示します。
setClass("spc") ## Strip punctuation and return a character vector
setAs("character", "spc", function(from)
gsub("[[:punct:]]", "", from))
setClass("spn") ## Strip punctuation and return a numeric vector
setAs("character", "spn", function(from)
as.numeric(gsub("[[:punct:]]", "", from)))
## Use those `class`es in `colClasses`
out2 <- read.delim(text = do.call(paste, c(df, sep = "\t")),
header = FALSE, colClasses = c("spc", "spn", "spc"))
str(out2)
# 'data.frame': 3 obs. of 3 variables:
# $ V1: chr "David" "Mark" "Alice"
# $ V2: num 5000 1000 5055
# $ V3: chr "KS" "FL" "CA"
または、表形式で十分な場合は、データを に変換してmatrix
使用することができますgsub
。
gsub("[[:punct:]]", "", as.matrix(df))
# name income state
# [1,] "David" "5000" "KS"
# [2,] "Mark" "1000" "FL"
# [3,] "Alice" "5055" "CA"