我的问题很简单.我想要的是A[i]!=NA,然后C[i]=A[i],A[i]=NA然后C[i]=B[i],然而,我总是得到一些错误消息.有人可以帮帮我吗?
A B C
NA 82.6 .
NA 127.2 .
NA 93.6 .
NA 105 .
NA 104 .
NA 90.6 .
NA 95.8 .
NA 103 .
NA 85.4 .
NA 81.5 .
NA 142.8 .
NA 102.3 .
NA 104 .
NA 103 .
NA 94.6 .
NA 113.8 .
NA 113.5 .
NA 74.5 .
NA 123.8 .
NA 94 .
NA 89.8 .
NA 74 .
NA 104 …Run Code Online (Sandbox Code Playgroud) 我的阵列是
x <- array(1:24, dim=c(3,4,3))
Run Code Online (Sandbox Code Playgroud)
我的任务1是根据前两个维度找到最大值
x.max <- apply(x,c(1,2), function(x) ifelse(all(is.na(x)), NA, max(x, na.rm = TRUE)))
Run Code Online (Sandbox Code Playgroud)
在有NA数据的情况下,我的任务2是在第三维上找到最大值位置.我试过了
x.max.position = apply(x, c(1,2),which.max(x))
Run Code Online (Sandbox Code Playgroud)
但这只能给我第二个维度的立场.
谁能帮我?
我有这样的数据帧:
block plot date data
1 1 aug 11.95171507
1 1 aug 18.41451063
1 2 aug 9.506155236
1 2 aug 13.26259947
1 3 aug 17.53616835
1 3 sep 15.40950767
2 1 sep 23.03616678
2 1 sep 17.07067258
2 2 sep 11.58278798
2 2 sep 13.15443304
Run Code Online (Sandbox Code Playgroud)
我想根据块和日期计算绘图中的数据平均值.最终,我希望有5种方法.谢谢你的帮助.
假设我有一个数据集,即dat1
ID block plot SPID TotHeight
1 1 1 4 44.5
2 1 1 4 51
3 1 1 4 28.7
4 1 1 4 24.5
5 1 1 4 27.3
6 1 1 4 20
17 1 10 1 44.5
19 1 10 1 51
1 1 11 21 28.7
2 1 11 21 24.5
3 1 11 21 27.3
4 1 11 21 20
5 1 11 21 12.88666667
6 1 11 21 7.235238095
7 1 11 21 …Run Code Online (Sandbox Code Playgroud)