R从泰坦尼克号获得一系列独特的价值

时间:2015-12-09 21:21:13

标签: r

这个问题来自我的闪亮应用程序,我尝试将反应属性用于级联参数,第一步我创建了硬编码字符串 s ,它可以正常工作, 现在我正在尝试为我的代码添加动态动态生成这个字符串,这不起作用,我在R中的所有类型的对象中有点迷失... 所以,s工作正常,我认为s只是一个带有字符元素的向量:

> s <- c("1st","2nd","3rd","Crew")
> str(s)
 chr [1:4] "1st" "2nd" "3rd" "Crew"

现在我正在尝试使用相同类型的字符串,但使用代码:

t <-  unique(data.frame(Titanic)$Class) ## use data.frame to make Nams available.
str(t)            ## now it's factor and looks like I need chr
t2 <- lapply(t, as.character)
str(t2)            ##  this loook like chr now
List of 4
$ : chr "1st"
$ : chr "2nd"
$ : chr "3rd"
$ : chr "Crew"

所以使用我手工制作的t2 intead产生错误(尺寸......),我不明白whay就是这样,看起来像t2结构应该可以吗? Tx寻求帮助 马里奥

1 个答案:

答案 0 :(得分:1)

您要查找的向量实际上是数据集的dimnames属性的一部分。在这种情况下,它只是行名称。

rownames(Titanic)
# [1] "1st"  "2nd"  "3rd"  "Crew"

要继续您正在做的事情,data.frame(Titanic)$Class会返回一个因子向量。我们可以使用levels()来获取我们想要的值,在这种情况下也是唯一值(对于不包含NA的所有情况都是如此)。

levels(data.frame(Titanic)$Class)
# [1] "1st"  "2nd"  "3rd"  "Crew"