第一次张贴在这里-道歉,如果我还没有得到如何提问的窍门。
我有一个大的csv文件(“AllANT_z”),其包含来自330多个参与者的数据,每个参与者具有大约290行数据(总共超过100 k行)。我已经加载了大csv,现在我使用一个简单的filter命令来单独挑选参与者(每个参与者都有一个唯一的参与者ID,列在标题为“参与者”的列下),将这些保存为数据,然后使用write.csv函数手动保存它们。有没有办法循环这个让它变得更快?我目前使用的方法可以工作--但非常耗时,而且容易出现人为错误。这就是我正在使用的:
boa001 <- AllANT_z %>%
filter(participant == "boa001")
write.csv(boa001, "E:/CognitiveData_Processed/ANT_zscored/zscored_allANT/boa001.csv", row.names = TRUE)
有什么方法可以加快速度吗?也许可以用循环?我是一个R新手,还不知道如何循环。任何帮助都将不胜感激-谢谢!
2条答案
按热度按时间bttbmeg01#
您可以按如下方式获取所有参与者的列表:
请注意,我不能确定这是否适合您,因为我没有看到您的实际数据。但一般来说,这应该工作。此外,您可能需要检查将创建多少文件:
之后,您可以循环查看参与者ID,过滤并将其保存到CSV文件中:
您还可以使用子集来代替过滤器:
5jdjgkvh2#
假设您有330个参与者,并且他们都遵循命名方案“boa{three-digit-number}”
这将为所有参与者生成字符串,选择相应的参与者,并使用相应的名称编写CSV文件。如果它们不遵循命名方案,则应使用所有名称定义向量,如
然后像这样迭代