【问题标题】:Stop R from including row names in csv file阻止 R 在 csv 文件中包含行名
【发布时间】:2021-10-15 21:10:27
【问题描述】:

您好,我正在尝试从我的环境中导出多个 csv,以将它们转移到 matlab。为了做到这一点,我从Write data frames in environment into separate csv files 找到了一个有用的循环,但是运行此代码包括我不想要的 csv 中的行号。谁能告诉我如何阻止这种情况发生?我在这篇帖子Prevent row names to be written to file when using write.csv 上看到您可以使用write.csv(t, "t.csv", row.names=FALSE) 之类的东西,但我不知道如何将其合并到循环中。如果可能的话,我还想在使用它来拆分数据帧之后摆脱 BIposterior$d 列。谢谢。

## Read in csv

BIposterior<-read.csv("BIPDF.csv",header=TRUE)

## Get rid of useless columns
BIposterior$X.1=NULL
BIposterior$n=NULL
BIposterior$X=NULL
BIposterior$x=NULL
BIposterior$a=NULL
BIposterior$th0=NULL
BIposterior$th1=NULL


## Create a loop to create separate data frames 

for(i in unique(BIposterior$d)) {
  nam <- paste("BIposterior", i, sep = ".")
  assign(nam, BIposterior[BIposterior$d==i,])
}

## Export all of the csvs
files <- mget(ls())

for (i in 1:length(files)){
  write.csv(files[[i]], paste(names(files[i]), ".csv", sep = ""))
}
### Data
structure(list(counts = c(0.00000762700016727025, 0.0000109607070538136, 
0.0000154982683282787, 0.0000215453927859112, 0.0000294581590232964, 
0.0000396276435633489), d = c(1L, 1L, 1L, 1L, 1L, 1L), year = c(2002.25707698199, 
2002.27255361611, 2002.28803025023, 2002.30350688435, 2002.31898351848, 
2002.3344601526)), row.names = c(NA, 6L), class = "data.frame")

【问题讨论】:

  • 只需将row.names=FALSE 添加到您的write.csv() 电话:write.csv(files[[i]], paste(names(files[i]), ".csv", sep = ""), row.names=FALSE)。 PS。您应该查看一个名为 split() 的函数,并了解如何使用列表而不是在全局环境中分配所有内容。
  • 谢谢辛德里

标签: r


【解决方案1】:

我不打算写这个作为答案,但是当你是这个网站的新手时,你显然不能发表评论,无论如何我都会这样做。 Sindri 已经回复了第一部分,在 name 参数后添加 row.names = FALSE。

write.csv(files[[i]], paste(names(files[i]), ".csv", sep = ""), row.names=FALSE)

要删除不需要的列(这是我实际上打算评论的),您可以简单地写

BIposterior <- BIposterior[-x]

当你不再需要 d 时,x 是 d 的列号,所以如果 d 是第 8 列,x 将是 8。这将使用新版本的 BIposterior 覆盖 BIposterior,其中不再包含第 x 列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多