【发布时间】:2020-04-27 09:16:12
【问题描述】:
我收集了一些在线行为数据,必须使用 R 对其进行分析。下载数据时,每个参与者除了日期之外没有唯一标识符。因为我正在分析所有数据,所以我编写了一个 for 循环,将所有 CSV 合并到一个数据帧中,我想添加一个“参与者”列,为每个加载的文件增加 1(例如 pp1、pp2 ,第 3 页)。这是我目前所拥有的:
OnExpDir = dir()
#Files begin with "PARTICIPANT" but no ID
OnExpList=grep("PARTICIPANT", OnExpDir, value = T)
#Binding data to one table
OnExpData=NULL
for(myfile in OnExpList)
{
fullExpFileName = paste(getwd(), "/", myfile, sep = "")
TMPData = read.csv(fullExpFileName, header = T, stringsAsFactors = T)
#Attempting to add a participant ID
for(i in 1:length(OnExpList))
{
TMPData$pp[i] = paste("pp",i)
}
OnExpData = rbind(OnExpData, TMPData)
}
产生以下结果:
|---------------------|------------------|
| data | pp |
|---------------------|------------------|
| data1 | pp1 |
|---------------------|------------------|
| data2 | pp2 |
|---------------------|------------------|
| data3 | pp3 |
|---------------------|------------------|
| data1 | pp1 |
|---------------------|------------------|
| data2 | pp2 |
|---------------------|------------------|
| data3 | pp3 |
|---------------------|------------------|
然而,这不是我想要的。它应该更像是:
|---------------------|------------------|
| data | pp |
|---------------------|------------------|
| data1 | pp1 |
|---------------------|------------------|
| data2 | pp1 |
|---------------------|------------------|
| data3 | pp1 |
|---------------------|------------------|
| data1 | pp2 |
|---------------------|------------------|
| data2 | pp2 |
|---------------------|------------------|
| data3 | pp2 |
|---------------------|------------------|
等等
如果解释不清楚,我深表歉意。如果有人能帮助我理解我的代码有什么问题,我将不胜感激。提前谢谢你。
【问题讨论】:
标签: r loops for-loop increment