2015-12-09 63 views
-1

這個問題來自於我有光澤的應用程序,我試圖用無功屬性級聯參數,可以用於第一步我創建的硬編碼字符串小號該工程確定, 現在我'試圖添加動態到我的代碼動態生產這個字符串,這是行不通的,我有點在R丟失的所有類型的對象可能... 所以,s工作好吧,我假設s只是一個與字符元素矢量:[R獲得獨特瓦萊斯的字符串泰坦尼克

> 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 for help Mario

+1

請勿使用'lapply'。只需使用't2 <-as.character(t)' – MrFlick

回答

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" 
+0

Tx,Richard! _levels(data.frame(Titanic)$ Class)_這個解決了所有,我只需要添加動態到$ ColumnName,我試圖使用_temp < - quote(「Class」)然後levels(data.frame(Titanic $ eval temp))_並沒有工作 –

+0

謝謝MrFlick,對不起,你的解決方案如此簡潔,一開始沒有看到.Best.m –

相關問題