【发布时间】:2023-02-26 00:38:13
【问题描述】:
我有一个边缘列表,其中包含组织名称及其与其他组织的联系。我想知道 R 中是否有一种有效的方法来创建一个表,其中一列列出传出节点,另一列包含一个包含所有传入节点的字符串。
所以基本上来自:
| Column A | Column B |
|---|---|
| A | C |
| A | D |
| B | C |
到
| Column A | Column B |
|---|---|
| A | C, D |
| B | C |
我尝试使用 Melt 和 Cast 进行各种操作,但无法使其与字符串一起正常工作。
【问题讨论】:
我有一个边缘列表,其中包含组织名称及其与其他组织的联系。我想知道 R 中是否有一种有效的方法来创建一个表,其中一列列出传出节点,另一列包含一个包含所有传入节点的字符串。
所以基本上来自:
| Column A | Column B |
|---|---|
| A | C |
| A | D |
| B | C |
到
| Column A | Column B |
|---|---|
| A | C, D |
| B | C |
我尝试使用 Melt 和 Cast 进行各种操作,但无法使其与字符串一起正常工作。
【问题讨论】:
根据您想要的输出,我们可以使用 dplyr 中的 group_by 函数对 A 列进行分组,并在 B 列中创建以逗号分隔的值:
library(tidyverse)
# your sample data
df <- data.frame(
Column_A = c("A", "A", "B"),
Column_B = c("C", "D", "C")
)
# Grouping column A using group_by function from dplyr and make comma-separated values in Column B
df <- df %>%
group_by(Column_A) %>%
summarize(Column_B = paste(Column_B, collapse = ", "))
# Renaming your column names
names(df) <- c("Column A", "Column B")
df<-as.data.frame(df)
df
Column A Column B
1 A C, D
2 B C
【讨论】: