【发布时间】:2018-12-14 11:22:58
【问题描述】:
df1 中与数据框lookup_df 中的lab_pt 匹配的级别我想用lookup_df 的第二列中的相应级别替换(此处为:lab_en)。但我想保持其余部分保持原样。 非常感谢!
--
主要数据框
df1 <- data.frame(
num_var = sample(200, 15),
col1 = rep(c("onda","estrela","rato","caneta","ceu"), 3),
col2 = rep(c("muro","gato","pa","rato","ceu"), 3),
col3 = rep(c("surf","onda","dente","onda","sei"), 3),
col3 = rep(c("onda","casa",NA,"nao","net"), 3))
查找数据框
lookup_df <- data.frame(
lab_pt = c("onda","estrela","rato","caneta","ceu"),
lab_en = c("wave","star","rat","pen","sky"))
我在下面尝试过这个。它完成了这项工作,但不匹配的信息被转换为 NA,这是我不想要的。
rownames(lookup_df) <- lookup_df$lab_pt
apply(df1[,2:ncol(df1)], 2, function(x) lookup_df[as.character(x),]$lab_en)
这里的这篇文章非常相似,但在那种情况下,所有级别都是可匹配的,与这里的不同。非常感谢! Replace values in a dataframe based on lookup table
【问题讨论】:
标签: r