我在 Rstudio 上有一個由包含串列的列組成的資料集。這是一個示例,其中“a”列和“c”列在每一行中都包含串列。
? 我在尋找什么?
我需要創建一個新列,從列 ab 和 c 中收集唯一值并跳過 NA 或 null 值
預期結果是列“desired_result”。
test <- tibble(a = list(c("x1","x2"), c("x1","x3"),"x3"),
b = c("x1", NA,NA),
c = list(c("x1","x4"),"x4","x2"),
desired_result = list(c("x1","x2","x4"),c("x1","x3","x4"),c("x2","x3")))
到目前為止我嘗試了什么?
我嘗試了以下但沒有產生預期的結果,如列“desired_result
test$attempt_1_ <-lapply(apply((test[, c("a","b","c"), drop = T]),
MARGIN = 1, FUN= c, use.names= FALSE),unique)
uj5u.com熱心網友回復:
我們可以使用pmap回圈 'a' 到 'c' 的每個對應元素,洗掉NA( na.omit) 并將unique值存盤為list'desired_result' 中的 a
library(dplyr)
library(purrr)
test <- test %>%
mutate(desired_result2 = pmap(across(a:c), ~ sort(unique(na.omit(c(...))))))
-檢查OP的預期
> all.equal(test$desired_result, test$desired_result2)
[1] TRUE
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439688.html
下一篇:從字典值中獲取子字串
