我有以下数据集:
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
现在我想用数字(1-3)替换“catNo”中的NA,具体取决于“cat”中的值(“I”= 1,“II”= 2,“III”= 3)。 / p>
如何添加这些数字,具体取决于“cat”中的值?
答案 0 :(得分:0)
如果您需要自制解决方案:
Data$catNo <- vapply(Data$cat, function(x) switch(x, I = 1, II = 2, III = 3, NA), FUN.VALUE = numeric(1))
请注意,如果不匹配,则返回NA
答案 1 :(得分: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))