多维列表 - 如果有2个项目,请选择第二个项目

时间:2018-05-14 04:23:15

标签: r

如果我的问题听起来令人困惑。这是一个例子。

n = c('dog') 
s = c('dog', 'cat') 
b = c('dog', 'cat')
v = c('dog')
x = list(n, s, b, v)

上述代码的输出为

1.'dog'
2.'dog' 'cat'
3.'dog' 'cat'
4.'dog'

我的目标是在有2件物品时获得第二件物品,并在有1件物品时获得第一件物品。

我尝试过使用sapply()

我可以使用此代码获得第二个元素。

sapply(x, "[", 2)

然而,我坚持如何写上面的条件。

我的愿望输出是。

1.'dog'
2.'cat'
3.'cat'
4.'dog'

请告知,谢谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用tail来提取最后一个元素

sapply(x, tail, 1)
#[1] "dog" "cat" "cat" "dog"

或使用tidyverse

library(tidyverse)
map_chr(x, last)
#[1] "dog" "cat" "cat" "dog"