[英]Extracting information from a data frame in R
我已经考虑过一些解决此编码问题的方法,但到目前为止,还没有任何结果。 我知道子集函数,但似乎不足以执行下面的确切任务。
给定下面的数据帧A,我希望获得第二个数据帧,其中每个类别更改为零的负数最接近零。 例如,对于类别A1,对于类别B10,我们将-4更改为零,对于-3最接近于零,因此将其更改为零,依此类推。
例如:
x_1 <- c("A1", "A1", "B10", "B10", "B10", "C100", "C100", "C100")
y_1 <- c(1, -4, -10, -3, 5, 8, -9, -11)
A <- data.frame(x_1, y_1)
x_2 <- c("A1", "A1", "B10", "B10", "B10", "C100", "C100", "C100")
y_2 <- c(1, 0, -10, 0, 5, 8, 0, -11)
B <- data.frame(x_2, y_2)
如您所见,我只希望将y_2中最接近零的负数更改为零,而其他数可以保持不变。 这似乎是一个简单的编码任务,对此我将不胜感激。
谢谢
x_1 <- c("A1", "A1", "B10", "B10", "B10", "C100", "C100", "C100")
y_1 <- c(1, -4, -10, -3, 5, 8, -9, -11)
A <- data.frame(x_1, y_1)
x_2 <- c("A1", "A1", "B10", "B10", "B10", "C100", "C100", "C100")
y_2 <- c(1, 0, -10, 0, 5, 8, 0, -11)
B <- data.frame(x_2, y_2)
像这样吗
library(plyr)
tmpfun <- function(d) {
negy <- d[,2]<0 ## negative values
w <- which.max(d[negy,2]) ## closest to zero
d[negy,2][w] <- 0
d
}
ddply(A,"x_1",tmpfun)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.