Farrel,我不完全遵循,因为“item”不是 R 类型。也许您有一个长度为 98 的list,其中每个元素都是字符串向量?
在这种情况下,考虑一下:
R> fl <- list(A=c("un", "deux"), B=c("one"), C=c("eins", "zwei", "drei"))
R> lapply(fl, function(x) length(x))
$A
[1] 2
$B
[1] 1
$C
[1] 3
R> do.call(rbind, lapply(fl, function(x) length(x)))
[,1]
A 2
B 1
C 3
R>
所以你有你的列表长度的向量,告诉你每个列表元素有多少个字符串。请注意最后一个do.call(rbind, someList),因为我们从lapply 得到了一个列表。
另一方面,如果您想计算每个列表位置的所有字符串的长度,请将简单的 length(x) 替换为计算字符的新函数:
R> lapply(fl, function(x) { sapply(x, function(y) nchar(y)) } )
$A
un deux
2 4
$B
one
3
$C
eins zwei drei
4 4 4
R>
如果这不是你想要的,也许你可以模拟一些示例输入数据?
编辑::响应您的 cmets,您想要的可能是:
R> do.call(rbind, lapply(fl, length))
[,1]
A 2
B 1
C 3
R>
请注意,我传入的是函数名称length,而不是函数(显示的)主体length()。因为这很容易混淆,所以我几乎总是像我的第一个答案一样应用一个匿名函数。
是的,这也可以通过 sapply 甚至一些 **ply 函数来完成:
R> sapply(fl, length)
A B C
2 1 3
R> lapply(fl, length)
[1] 2 1 3
R>