R help-在特定条件下更改每一行的最大值

时间:2018-09-22 09:47:50

标签: r

我是R的新手。我有一个列为1:n的数据框。 不包括列1和n ,如果该行在其他列中具有特定值,并且要将其余值(不包括列1和n)设置为零,我想更改每行的最大值。我的真实数据中有大约300,000个案例和40列,但是,以下示例说明了我要实现的目标:

A <- c(1,1,5,5,10)
B <- rnorm(1:5)
C <- rnorm(1:5)
D <- rnorm(1:5)
E <- c(10,15,100,100,100)
df <- data.frame(A,B,C,D,E)
df

   A           B          C          D   E
1  1  0.74286670  0.3222136  0.9381296  10
2  1 -0.03352498  0.5262685  0.1225731  15
3  5 -0.17689629 -0.8949740 -1.4376567 100
4  5  0.48329153  1.1574834 -1.1116581 100
5 10  0.13117277 -0.2068736  0.4841806 100

在这里,如果每行的A列都为1,我想将每行的最大值更改为E列的值,并将B,C和D列设置为0。

所以,结果应该是这样的:

   A           B          C          D   E
1  1           0          0         10  10
2  1           0         15          0  15
3  5 -0.17689629 -0.8949740 -1.4376567 100
4  5  0.48329153  1.1574834 -1.1116581 100
5 10  0.13117277 -0.2068736  0.4841806 100

我尝试这样做了两天。谢谢。

1 个答案:

答案 0 :(得分:1)

尝试一下,看看会发生什么:)

basename(.rs.listIndexedPackages())