2012-02-21 81 views

回答

3

這裏有兩種方法我經常使用類似的情況:

vetor <- c(1,2,3) 
key <- data.frame(vetor=vetor, mat=c('a', 'b', 'c')) 
data <- data.frame(id=c('a', 'b', 'a', 'c', 'a')) 

data$vector1 <- key[match(data$id, key$mat), 'vetor'] 
#or with merge 
merge(data, key, by.x = "id", by.y = "mat") 
0

所以你想爲每個不同的id列添加一個唯一的整數?

這在R中被稱爲因子,並且您的id列是1。

要轉換爲數值表示形式,使用as.numeric

data <- data.frame(id=c('a', 'b', 'a', 'c', 'a')) 
data$vector1 <- as.numeric(data$id) 

這工作,因爲data$id不是字符串的列,但列因素

0

這裏是我發現,遵循「mathematical.coffee」提示答案:

vector1 <- c('b','a','a','c','a','a') # 3 elements to be labeled: a, b and c 
labels <- factor(vector1, labels= c('char a', 'char b', 'char c')) 
data.frame(vector1, labels) 

我們需要的唯一的事情請注意,在factor(vector1,...)函數中,vector1將被排序,並且標籤必須正確地遵循該順序。