Jon*_*aus 15 csv r read.table
在R中,是否有类似函数read.csv读取文件,其中标题位于左侧(或右侧)而不是顶部,数据是从左到右组织的?
所以数据看起来像:
var1,1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)
看看文档,read.table并read.csv没有似乎突然出现.我看到使用这些函数的最佳选择是使用read.table然后构造另一个表,其列是原始数据的行,依此类推.
Ric*_*mos 21
假设您的文件名为'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
Run Code Online (Sandbox Code Playgroud)
注意var1并且var3有6个值但var2只有5个.所以,想法是读取数据,转置它然后使用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)
}
Run Code Online (Sandbox Code Playgroud)
然后,你可以这样做:
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
Run Code Online (Sandbox Code Playgroud)