我想用R中的大数据帧创建一个循环 问题
我想从我想用R中的大数据帧创建一个循环 问题,r,loops,dataframe,R,Loops,Dataframe,我想从df1中的数据创建一个循环,每次获取一个ID值很重要 我不确定用R怎么做 #original dataset id=c(1,1,1,2,2,2,3,3,3) dob=c("11-08","12-04","04-03","10-04","03-07","06-02","12-09","01-01","03-08") count=c(1,6,3,2,5,6,8,6,4) outcome=rep(1:0,length.out=9) df1=data.frame(id,dob,count,outc
df1
中的数据创建一个循环,每次获取一个ID值很重要
我不确定用R怎么做
#original dataset
id=c(1,1,1,2,2,2,3,3,3)
dob=c("11-08","12-04","04-03","10-04","03-07","06-02","12-09","01-01","03-08")
count=c(1,6,3,2,5,6,8,6,4)
outcome=rep(1:0,length.out=9)
df1=data.frame(id,dob,count,outcome)
#changes for each value this needs to be completed separately for each value
df2<-df1[df1$id==1,]
df2<-df2[,-4]
addition<-df2$count+45
df2<-cbind(df2,addition)
df3<-df1[df1$id==2,]
df3<-df3[,-4]
addition<-df3$count+45
df3<-cbind(df3,addition)
df4<-df1[df1$id==3,]
df4<-df4[,-4]
addition<-df4$count+45
df4<-cbind(df4,addition)
df5<-rbind(df2,df3,df4)
原始数据集
id=c(1,1,1,2,2,3,3)
dob=c(“11-08”、“12-04”、“04-03”、“10-04”、“03-07”、“06-02”、“12-09”、“01-01”、“03-08”)
计数=c(1,6,3,2,5,6,8,6,4)
结果=重复(1:0,长度=9)
df1=数据帧(id、dob、计数、结果)
#每个值的更改需要为每个值分别完成
df2在当前上下文中(可能是一个简化的示例),循环甚至不需要这个,因为我们可以直接将“count”与数字相加
df1$addition <- df1$count + 45
另外,
data.table
语法将是
library(data.table)
setDT(df1)[, addition := count + 45, by = id]
或者干脆
setDT(df1)[, addition := count + 45]
不幸的是,我正在处理此数据集中的时间序列数据,因此需要将其作为循环运行,但我知道您仍然回答了上述问题。编辑:我的意思是感谢您回答这个问题,但我将无法将其用于我的特定任务,因为我的问题中遗漏了大量代码。@Sparky,正如我提到的,它可以是一个groupby操作。@Sparky,我们向您展示了不需要循环。事实上,不需要分组!只需简单的列分配,不需要循环。只需删除第四列并指定新的列:
df$addtion想象一下,如果进一步到示例中,我添加了来自其他数据帧的信息,并根据原始信息修改了大量的时间序列数据,必须使用循环请向回复者和您文章的未来读者显示(而不是告诉)。您忽略了非常相关的细节。抱歉@Parfait我试图保留接近原始流程的适当最小可复制示例,但感谢您回答这个问题。
library(data.table)
setDT(df1)[, addition := count + 45, by = id]
setDT(df1)[, addition := count + 45]