我有两列所有者和用户,两个字符串,两个名称的数据框。每行代表一个关系。所有者在论坛上发布了一个问题,用户已重播。当特定用户成为所有者时,我需要所有用户的列表。可以复制,列表必须与存在时间变量的列表相同。

| 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

07-24 09:51
查看更多