【发布时间】:2016-08-09 21:04:37
【问题描述】:
我想将 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
为了澄清问题,这里是示例数据。 我尝试了所有的cmets,但问题还没有解决..
-
user[user[,1] %in% user_info[,1], 1:3]:输出与预期不匹配。 - merge 和 rbind:只存储一行,而不是完整的数据。
用户:
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
用户信息:
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
【问题讨论】:
-
user[user[,1] %in% user_info[,1], 1:3] -
这条线好像不行...我应该用
df<-print(user_info[j,1:3])替换这条线对吗? -
@WoobinYun 你应该用你的整个循环代码替换它。
-
@Roland Care 从您的评论中写出答案?
标签: r