我有两列所有者和用户,两个字符串,两个名称的数据框。每行代表一个关系。所有者在论坛上发布了一个问题,用户已重播。当特定用户成为所有者时,我需要所有用户的列表。可以复制,列表必须与存在时间变量的列表相同。
| Owner | User |
|-------|------|
| A | B |
| A | C |
| B | V |
| B | D |
| C | A |
输出将是每行的新字符串列输出,然后是该输出的分类。我可以自己进行分类。
| Owner | User | Output | Cat_output |
|-------|------|--------|------------|
| A | B | V,D | indirect |
| A | C | A | direct |
| B | V | | empty |
| B | D | | empty |
| C | A | B,C | direct |
我会用Return MULTIPLE corresponding values for ONE Lookup Value, Horizontally, in one Row在Excel中返回它。
我必须在R中重现它,但无法弄清楚。
谢谢
普里莫斯
最佳答案
沿着与其他类似的思路,我想到了split
。
“输出”作为list
:
df$Output <- with(df, split(User, Owner))[df$User]
df
# Owner User Output
# 1 A B V, D
# 2 A C A
# 3 B V NULL
# 4 B D NULL
# 5 C A B, C
“输出”作为单个字符串”
df$Output <- sapply(with(df, split(User, Owner)), toString)[df$User]
df
# Owner User Output
# 1 A B V, D
# 2 A C A
# 3 B V <NA>
# 4 B D <NA>
# 5 C A B, C