【问题标题】:replacing a set of values of a data frame by another in R用R中的另一个替换数据帧的一组值
【发布时间】:2015-05-08 15:19:08
【问题描述】:

假设我有一个暗淡 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 中的任何一个。

此外,我们可以通过操作将 19,20 替换为 a、b、c、d 中的任何内容吗?

【问题讨论】:

  • 你能澄清最后一行吗?

标签: r dataframe data-manipulation


【解决方案1】:

试试:

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])

【讨论】:

    【解决方案2】:

    你可以直接替换值

    X[X < 19] <- as.character(Y[X[X < 19],2])
    

    请注意,您正在将 X 列转换为字符。

    据我了解“通过操作”,您可以使用以下方法更改 19、20 值:

    X[X == 19] <- 'c'
    X[X == 20] <- 'a'
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2019-08-06
      • 2018-01-23
      • 1970-01-01
      • 2018-05-12
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多