假设我有一个dim 200 * 100的数据框(X),其中每个元素都是1到20之间的任何值。我有另一个数据框(Y),其中第一列是1:18,第二列是一组字符(例如:a,d,a,c,b,b,d,c,... b,c,d){注意只有四个不同的字符a,b,c,d)
我们需要用Y中的相应值替换X的每个元素。这意味着输出应该是一个新的数据框XX,其中每个元素都是a,b,c,d,19,20之外的任何元素。
此外,我们可以通过操纵来替换a,b,c,d中的任何东西吗?
答案 0 :(得分:0)
尝试:
x <- as.data.frame(matrix(sample(1:20,200*100,TRUE),200,100))
y <- data.frame(1:20,c(sample(letters[1:4],18,TRUE),19,20))
apply(x,1,function(e) y[match(e,y[,1]),2])
答案 1 :(得分:0)
您可以直接替换值
X[X < 19] <- as.character(Y[X[X < 19],2])
请注意,您要将X
列转换为字符。
据我了解&#34;通过操作&#34;,你可以用以下内容更改19,20个值:
X[X == 19] <- 'c'
X[X == 20] <- 'a'