【发布时间】:2021-02-16 05:42:33
【问题描述】:
这个问题类似于R: How to extract a list from a dataframe? 但我无法以简单的方式将其应用于我的问题。
weird_df <- data_frame(col1 =c('hello', 'world', 'again'),col_weird = list(list(12,23), list(23,24), NA),col_weird2 = list(list(0,45), list(4,45),list(45,45.45,23)))
weird_df
# A tibble: 3 x 3
col1 col_weird col_weird2
<chr> <list> <list>
1 hello <list [2]> <list [2]>
2 world <list [2]> <list [2]>
3 again <lgl [1]> <list [3]>
>
我希望在 col_weird 和 col_weird2 列中仅显示当前列表的第一个值。
col1 col_weird col_weird2
1 hello 12 0
2 world 23 4
3 again NA 45
我真正的问题有很多专栏。我试过这个(在发布的链接中更改了接受答案)
library(tidyr)
library(purrr)
weird_df %>%
mutate(col_weird = map(c(col_weird,col_weird2), toString ) ) %>%
separate(col_weird, into = c("col1"), convert = TRUE) %>%
separate(col_weird2, into = c("col2",convert = T)
【问题讨论】:
-
我不知道函数
data_frame(),你是说data.frame()吗?此外,data.frame()的行为也有所不同。data_frame()来自哪个包? -
实际上我从提到的链接中获得了它。下划线
data_frame是正确的,因为它应该会产生一个小标题。使用data.frame会生成一个data.frame。