我有一个包含许多字符串的列表。我想计算列表中每个元素中唯一字符串的数量。例如:
我的名为test的列表如下:
test <- list(
c("X", "Y", "Z", "X"),
c("W", "X", "X"),
c("Z", "W", "Y", "X", "Z", "Z")
)
我想要一个输出,可以告诉我以下信息:
[[1]] 3
[[2]] 2
[[3]] 4
通过使用以下代码,我可以轻松地为每个元素计数:
length(unique(test[[1]]))
但是,我不确定如何自动执行此操作。我尝试制作如下所示的for循环,但出现以下错误:
test_length <- for(i in test){length(unique(test[[i]]))}
测试[[i]]中的错误:1级没有这样的索引
答案 0 :(得分:0)
尝试改用lapply
> lapply(test, function(x) length(unique(x)))
[[1]]
[1] 3
[[2]]
[1] 2
[[3]]
[1] 4
希望这会有所帮助!
答案 1 :(得分:0)
这是tidyverse
library(tidyverse)
test %>%
map_int(n_distinct)
#[1] 3 2 4