【发布时间】:2014-03-27 09:21:26
【问题描述】:
20 小时后仍未得到答复!我想我必须简化我的问题:
我有 104 个文件(我将它们全部放在一个数据框中)。每个文件有 6 列。第一列可分为 50 组。对于这 50 个组中的每一个,每个文件都有不同数量的记录。我只需要保存 1000 条记录。我尝试了一个嵌套的 for 循环,但它不起作用。
我必须对一个包含 4911703 行(obs.)的 6 个变量的大文件进行排序。 (Kindly, you can download a brief scheme of this data frame here)
数据框有 6 列,V1、V2、V3、V4、V5、V6。
在这个文件中,V1 有 50 个不同的编号,称为主题(451、452、...、500),V6 有 104 个不同的系统名称。 V6 中的每个系统对于 V1 中的每个数字(主题)都有大约 1000 条记录。例如451 有 1000 条记录,452 有 1000 条记录,依此类推。我必须对这个数据框进行排序。我在 plyr 包中使用 arrange() 做到了这一点。因此,其中一列“V4(等级)”未排序,我必须通过添加一个名为“new_rank”的新列来重新排列数据。我在这个重新排名中使用了“嵌套的”。
for(i in 1:50){
for(i in 1:?)
clean_file["newRank"] <- 0:1000
}
问题:不幸的是,V1 中每个主题的系统记录并不相等。一个系统可能有 451 条记录 1045 条,而另一个系统可能有 1345 条记录。所以,J 在第二个“for”中遇到了问题。 由于 V1 中的每个主题只需要 1000 条记录,因此我尝试在重新排序之前对数据框进行子集化。但我不知道该怎么做!换句话说,对于 V6 [104 x 1000 x 50] 中的每 104 个系统,我希望 V1 中的每个主题只有 1000 条记录。我想知道是否有人可以帮助我解决这个问题。提前致谢。
PS:我阅读了list.files and ldply(file, readt.table) 的104 个文件来制作这个巨大的文件。我试图在多个数据帧而不是一个数据帧中读取这 104 个文件,但我再次遇到了失败。
【问题讨论】:
-
这里不需要
for循环。您要对数据进行排序的变量是什么?另外,我不想下载您的文件,请在您的数据集上运行deput并在此处发布 -
@Dave 冒着被弄傻的风险,请问你对数据集的“deput”是什么意思?