如何在R数据框架中创建基于另一个列的元素列表



我有一个这样的表:

<表类> col1 col2 col3 tbody><<tr>x14x25x36y14y25y36

使用dplyr返回值列表的解决方案(不确定您是否想要字符串或列表,但您的示例中的括号使我认为您想要列表…)

library(dplyr)
df1 %>% 
group_by(col1) %>% 
summarise(across(, list))

可以吗?

library(dplyr)
library(stringr)
df %>% group_by(col1) %>% summarise(col2 = str_c('[',toString(col2),']'))
# A tibble: 2 x 2
col1  col2     
<chr> <chr>    
1 x     [1, 2, 3]
2 y     [1, 2, 3]

您可以使用tidyr::pivot_wider

library(tidyr)
df %>% 
pivot_wider(id_cols = col1,
values_from = -col1,
values_fn = list)

默认的values_fnlist,所以从技术上讲这里不需要它,但是为了抑制警告消息,我明确地设置了它。

使用aggregatefrombase R

aggregate(.~ col1, df1, list)
col1    col2    col3
1    x 1, 2, 3 4, 5, 6
2    y 1, 2, 3 4, 5, 6

数据
df1 <- structure(list(col1 = c("x", "x", "x", "y", "y", "y"), col2 = c(1L, 
2L, 3L, 1L, 2L, 3L), col3 = c(4L, 5L, 6L, 4L, 5L, 6L)),
class = "data.frame", row.names = c(NA, 
-6L))

相关内容

  • 没有找到相关文章

最新更新