R:代码运行并创建了太大的文件,我应该如何更改?

R:代码运行并创建了太大的文件,我应该如何更改?,r,R,也许我误解了这段代码的工作原理。我的原始数据中有18102x7=126714个条目。我的新csv文件中不应该有18102x8=144816个条目,因为我创建了一个ID的新列吗?为什么会吐出3.27亿?这里的任何帮助都将不胜感激 mydata<-read.csv("data.csv") dd<-data.frame(mydata[,1:3], X4=letters[mydata[,4]], X5=mydata[,5],

也许我误解了这段代码的工作原理。我的原始数据中有18102x7=126714个条目。我的新csv文件中不应该有18102x8=144816个条目,因为我创建了一个ID的新列吗?为什么会吐出3.27亿?这里的任何帮助都将不胜感激

 mydata<-read.csv("data.csv")


dd<-data.frame(mydata[,1:3], 
               X4=letters[mydata[,4]], X5=mydata[,5], 
               matrix(runif(nrow(mydata)*(18102-ncol(mydata))), nrow=nrow(mydata)))

dd$ID <- as.numeric(interaction(dd[,1:5], drop=T, lex.order=T))


write.csv(dd,file="newdata.csv")

mydata
interaction
将创建一个因子,其级别与
dd
前5列中每一列的唯一项目数量乘积中的级别相同。在这种情况下,您可能试图执行
,但没有告诉我们它是什么,因此我们无法帮助您。如果您只是想创建一个ID,那么可能
应用(dd,1,paste0)
@bondedust,但最终
d$ID
将作为输入的名称长度。假设您已经到了编写文件的时候,就没有理由期望输出会有这么大的变化,对吗?如果交互太大,我会在
交互
调用中预期“无法分配向量…”的错误。你明白了。没有数据,没有代码来描述R会话中的结果。谁知道呢?对不起,我对R很陌生,可能会遗漏一些有助于解决此问题的信息。当我使用较大的数据集运行此命令时,Rstudio会给出一个错误,即“无法建立到R会话的连接”。当我将数据的大小减小到较小的大小(如此),它会写入一个5.5 GB的CSV文件@BondedDust,程序的最终结果是为具有相同前5列的数据行分配相同的ID号。数据既有单词(即一行所属的状态)也有数字数据(即人数)。