我在替换数据帧中的值时遇到了一些麻烦.我想基于单独的表替换值.以下是我想要做的一个例子.
我有一张桌子,每排都是顾客,每列都是他们购买的动物.让我们调用这个数据帧table.
> table
# P1 P2 P3
# 1 cat lizard parrot
# 2 lizard parrot cat
# 3 parrot cat lizard
Run Code Online (Sandbox Code Playgroud)
我还有一个我将引用的表格lookUp.
> lookUp
# pet class
# 1 cat mammal
# 2 lizard reptile
# 3 parrot bird
Run Code Online (Sandbox Code Playgroud)
我想要做的就是创建一个名为新表new与功能替换所有值table与class列lookUp.我自己尝试使用一个lapply函数,但是我收到了以下警告.
new <- as.data.frame(lapply(table, function(x) {
gsub('.*', lookUp[match(x, lookUp$pet) ,2], x)}), stringsAsFactors = FALSE)
Warning messages:
1: In gsub(".*", lookUp[match(x, lookUp$pet), 2], x) :
argument …Run Code Online (Sandbox Code Playgroud)