のは、あなたのファイルは、「data.csv」と呼ばれ、それが含まれているとしましょう:
var1,1,2,3,4,5,6
var2,2.1,3.9,4.6,5.2,6.1
var3,M,F,M,F,M,M
注var1
とvar3
は、6つの値を持っていますが、だから、唯一の5 をvar2
持って、アイデアは、データを読み取ることで、それを転置してread.csv
を使用してください。
read.tcsv = function(file, header=TRUE, sep=",", ...) {
n = max(count.fields(file, sep=sep), na.rm=TRUE)
x = readLines(file)
.splitvar = function(x, sep, n) {
var = unlist(strsplit(x, split=sep))
length(var) = n
return(var)
}
x = do.call(cbind, lapply(x, .splitvar, sep=sep, n=n))
x = apply(x, 1, paste, collapse=sep)
out = read.csv(text=x, sep=sep, header=header, ...)
return(out)
}
次に、あなたが行うことができます:
read.tcsv( "data.csv")
var1 var2 var3
1 1 2.1 M
2 2 3.9 F
3 3 4.6 M
4 4 5.2 F
5 5 6.1 M
6 6 NA M
あなたはどのようにあなたの最小限の2または3行の例を与えることができますテキストデータは見えますか?それぞれの行は 'var1,1,2,3,4,5'のようなものですか? – thelatemail
はい、そうですね。この場合のヘッダーは最も左の列です。 –
*すべての変数が数値の場合は、提案どおりに実行できます。 'x < - read.csv(...); as.character(x [、1])) ' –