我在替换数据帧中的值时遇到了一些麻烦.我想基于单独的表替换值.以下是我想要做的一个例子.
我有一张桌子,每排都是顾客,每列都是他们购买的动物.让我们调用这个数据帧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) 我有两个数据框:
df1
x1 x2
1 a
2 b
3 c
4 d
Run Code Online (Sandbox Code Playgroud)
和
df2
x1 x2
2 zz
3 qq
Run Code Online (Sandbox Code Playgroud)
我想根据df1 $ x1和df2 $ x2之间的条件匹配,用df2 $ x2中的值替换df1 $ x2中的某些值,以产生:
df1
x1 x2
1 a
2 zz
3 qq
4 d
Run Code Online (Sandbox Code Playgroud)