gpt4 book ai didi

读取水平组织的 CSV 文件

转载 作者:行者123 更新时间:2023-12-03 20:23:29 24 4
gpt4 key购买 nike

在 R 中,是否有类似 read.csv 的函数?读取文件头在左侧(或右侧)而不是顶部并且数据从左到右组织的文件?

所以数据看起来像:

var1,1,2,3,4,5

查看 read.table 的文档和 read.csv ,似乎什么都没有弹出。我看到使用这些函数的最佳选择是使用 read.table然后构造另一个表,其列是原始数据的行等等。

最佳答案

假设您的文件名为“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

备注 var1var3有 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)

}

然后,你可以这样做:

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

关于读取水平组织的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17288197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com