我想将if语句的打印结果设置为数据帧以供以后使用。
例如,
如果我跑,
for(i in 1:nrow(user)){
for(j in 1:nrow(user_info)){
if(user[i,1]==user_info[j,1])
df<-print(user_info[j,1:3])
}
}
控制台显示,
1 roles user guest
1 1 15
2 roles user guest
2 1 367
3 roles user guest
3 1 648
当我打电话给'df'时,它只显示最后的结果。
roles user guest
3 1 648
如果我想让'df'像这样,我如何将完整结果存储为数据框?
roles user guest
1 1 15
2 1 367
3 1 648
为了澄清问题,这里是样本数据。 我尝试了所有评论,但问题还没有解决..
user[user[,1] %in% user_info[,1], 1:3]
:输出与预期输出不匹配。用户:
roles action created_at
10 1 2016-08-01
10 1 2016-08-01
1 1 2016-08-01
3 2 2016-08-01
4 1 2016-08-01
5 1 2016-08-01
5 2 2016-08-02
8 1 2016-08-02
9 1 2016-08-02
7 2 2016-08-02
USER_INFO:
roles user guest
1 1 15
2 1 367
3 14 42
4 2 34
5 4 2
6 3 100
7 23 32
8 9 49
9 55 12
10 8 291
答案 0 :(得分:1)
合并怎么样?
merge(user_info, user, by = "role")[, 1:3]
答案 1 :(得分:0)
您可以尝试 rbind 吗?
for(i in 1:nrow(user)){
for(j in 1:nrow(user_info)){
if(user[i,1]==user_info[j,1])
user_info<-print(user_info[j,1:3])
df<-rbind(df,user_info)
}
}