用逗号将变量导出到R

时间:2016-09-01 09:53:40

标签: r

我的数据框中有一些char和factor变量,看起来像“A,A”,“B,B,B,B”“C,C”

我正在尝试将整个数据框导出到.csv,但输出非常不稳定。这让我更加困惑,因为我想要欧洲的csv格式。当我打开csv文件时,正在根据该变量的逗号创建其他列。

我尝试了以下方法,没有任何效果:

write.table(mydata, "C:/Data/test.csv",row.names=FALSE,sep=";",dec=',')
write.table(mydata,"C:/Data/test.csv",row.names=F, quote = TRUE)
write.table(mydata, "C:/Data/test.csv",row.names=FALSE,sep="\t",dec=',')

#This works well, but I would rather have a .csv than an excel file: 
write.table(mydata, "C:/Data/test.xls",row.names=FALSE,sep="\t",dec=',')

预期输出是单元格不分割的列,如下所示:

VariablesWithCommas
A ,A 
B ,B ,B ,B 
C ,C 

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我同意@drmariod认为创建一个csv文件并不是最好的想法,其中分隔符是一个逗号 - 这只会引起太多混乱。

但是如果你必须根据用途你可以做一些事情,

df <-  data.frame(A = rbind("A ,A",
                  "B ,B ,B ,B ",
                  "C ,C "))

如果您想再次在R中使用此数据,那么:

# write an object  
dput(df, "out")
# read an object
dget("out")

如果您要写入文件,则可以使用writewriteLines &#39;建立&#39;你的文件来自行。这是一个想法:

lines <-   lapply( data.frame(split(df, 1:nrow(df))) ,as.character)

# write rows to file
for(i in 1:nrow(df)){
  write( paste0(lines[i]),  file = "out.txt", append = T)  
}

再读回来:

df_2 <- read.csv("out.csv", sep="\n")