如何解决针对R
df <- data.frame(sd = c('05AP.U1 1','05AP.U1 1','05AP.U2 1','07RT.U1 1','07RT.U1 1'),soure = c('plant','plant','animal','animal'),en = c(184.45,15.78,00.00,1541.15,12.15,456.14,78.45,94.84,4661.1,165,156,28,165.12,158,132.2),percentpl = c(50,50,40,80,0),percentan = c(0,60,20,20))
> df
> df
sd soure en percentpl percentan
1 05AP.U1 1 plant 184.45 50 0
2 05AP.U1 1 plant 15.78 50 0
3 05AP.U1 1 plant 0.00 50 0
4 05AP.U1 1 plant 1541.15 50 0
5 05AP.U1 1 plant 12.15 50 0
6 05AP.U1 1 animal 456.14 0 50
7 05AP.U2 1 animal 78.45 0 60
8 05AP.U2 1 animal 94.84 0 60
9 05AP.U2 1 animal 4661.10 0 60
10 05AP.U2 1 animal 165.00 0 60
11 05AP.U2 1 plant 156.00 40 0
12 07RT.U1 1 plant 28.00 80 0
13 07RT.U1 1 plant 165.12 80 0
14 07RT.U1 1 animal 158.00 0 20
15 07RT.U1 1 animal 132.20 0 20
现在我希望df
看起来像这样
sd percentpl percentan
1 05AP.U1 1 50 50
9 05AP.U2 1 40 60
12 07RT.U1 1 80 20
因此,我想就百分比和sd来总结df
(总结可能不是正确的词)。新的df可以更容易地调用。我实际上不知道该怎么做...
编辑:
sd
是食物样本。 percentpl
和percentan
是我在此省略的两个变量的百分比。最后,我要绘制一个以百分比为x和y轴的图,并且图的点应该是样本sd
。
解决方法
您可以尝试以下方法:
library(dplyr)
df %>%
group_by(sd) %>%
summarise(percentpl = unique(percentpl[percentpl!=0]),percentan = unique(percentan[percentan!=0]))
或者也是
library(dplyr)
df %>%
group_by(sd) %>%
summarise(across(c(percentpl,percentan),~unique(.[.!=0])))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。