2014-01-28 42 views
0

我有以下數據集:添加R中與相關值的列

Data <- data.frame(
    date = c("2001-1", "2001-2", "2001-3", "2001-1", "2001-2", "2001-3", "2001-1", "2001-2", "2001-3"), 
    actor = c("A", "B", "C", "A", "B", "C", "A", "B", "C"), 
    cat = c("I", "II", "III", "I", "II", "III", "I", "II", "III"), 
    freq = c(2, 3, 4, 1, 2, 5, 2, 6, 3) 
) 

我想補充另一列(catNo):

Data["catNo"] <- NA 

現在我想更換來港的「根據「貓」(「I」= 1,「II」= 2,「III」= 3)中的值,用數字(1-3)表示「catNo」。

如何添加這些數字,取決於「貓」中的值?

回答

0

如果你有獨特的「串」的載體和「相關的矢量數字「,你可能想嘗試:

strings <- c("a", "b" ,"d", "n") 
numbers <- 1:4 
x <- sample(l, 10, rep = T) 
xf <- as.numeric(factor(x , levels = strings , labels = numbers)) 
+0

這是有效的,但只有當我寫覆蓋「貓」的值。但是我想根據「貓」中的條目替換「catNo」中的新手。 – feder80

+0

Data [,「catNo」] < - Data $ cat然後Data $ catNo < - as.numeric(因子(Data $ catNo,levels = categories,labels = categories2)) - 謝謝! – feder80

0

如果你需要一個自制的解決方案:

Data$catNo <- vapply(Data$cat, function(x) switch(x, I = 1, II = 2, III = 3, NA), FUN.VALUE = numeric(1)) 

請注意它只返回NA在沒有比賽的情況下

+0

好吧,這適用於3值,但我有37!我有一個列表,其中包含「貓」的所有不同值以及所有數字的一個列表。這有幫助嗎? – feder80