无法使用sep =“,;在r

发布于 2025-02-02 01:34:59 字数 714 浏览 1 评论 0原文

我正在尝试阅读R中的一个庞大的CSV文件(约35 GB)

现在,在CSV文件中,所有变量和观测值都被“,”分开。添加一个快照。

如果我适用于类似的数据,

df = rbind("varA,varB,varC","Id1,0,23","Id2,1,34","Id3,2,145")

write.table(df,file="data1.csv",row.names = FALSE,col.names = FALSE)

huge_file <- 'data1.csv'
#First detect a data model for your file:
model <- detect_dm_csv(huge_file,header=TRUE,sep=",",fill=TRUE) #1
#model
df.laf <- laf_open(model)
df_read
#  varA.varB.varC
#1       Id1,0,23
#2       Id2,1,34
#3      Id3,2,145

我将无法弄清楚如何将变量和观测值分开。 任何帮助都非常感谢。

I am trying to read a huge CSV file(about 35 GB) in R.

I am using LaF package for this.

Now in the csv files, all the variables and observations are separated by ",". Adding a snap of this. enter image description here

If I am apply to a similar looking data

df = rbind("varA,varB,varC","Id1,0,23","Id2,1,34","Id3,2,145")

write.table(df,file="data1.csv",row.names = FALSE,col.names = FALSE)

huge_file <- 'data1.csv'
#First detect a data model for your file:
model <- detect_dm_csv(huge_file,header=TRUE,sep=",",fill=TRUE) #1
#model
df.laf <- laf_open(model)
df_read
#  varA.varB.varC
#1       Id1,0,23
#2       Id2,1,34
#3      Id3,2,145

I can't figure out how to separate the variables and the observations.
Any help is much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑看君怀她人 2025-02-09 01:34:59

多亏了@gregor Thomas的评论,sep =“ \ t”可以用来将数据分开为不同的列。我希望以下方式可以是阅读data1.csv的可能有效方法之一:

library(data.table)
dat <- fread("data1.csv", sep = "\t") 
dat1 <- dat |> 
    apply(1,tstrsplit, split = ",") |> 
    do.call(rbind.data.frame, args = _)|> 
    setNames(
       colnames(dat) |> 
       tstrsplit (split = "[,]")|> 
       unlist()
    )
    

dat1[,-1] <- apply(dat1[,-1], 2, as.numeric)
dat1
#  varA varB varC
#1  Id1    0   23
#2  Id2    1   34
#3  Id3    2  145

str(dat1)
#'data.frame':  3 obs. of  3 variables:
# $ varA: chr  "Id1" "Id2" "Id3"
# $ varB: num  0 1 2
# $ varC: num  23 34 145

Thanks to @Gregor Thomas' comment, sep = "\t" can be used to separate the data into different columns. I hope the following way can be one of possibly efficient ways to read data1.csv:

library(data.table)
dat <- fread("data1.csv", sep = "\t") 
dat1 <- dat |> 
    apply(1,tstrsplit, split = ",") |> 
    do.call(rbind.data.frame, args = _)|> 
    setNames(
       colnames(dat) |> 
       tstrsplit (split = "[,]")|> 
       unlist()
    )
    

dat1[,-1] <- apply(dat1[,-1], 2, as.numeric)
dat1
#  varA varB varC
#1  Id1    0   23
#2  Id2    1   34
#3  Id3    2  145

str(dat1)
#'data.frame':  3 obs. of  3 variables:
# $ varA: chr  "Id1" "Id2" "Id3"
# $ varB: num  0 1 2
# $ varC: num  23 34 145
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文