当字符值相等时,如何合并数据行? (右)
How can I combine rows of data when their character values are equal? (R)
我有一个通过观察记录的数据集(每个观察都有自己的一行数据)。我正在寻找 combine/condense 这些行,它们所在的工厂 - 当前是一个字符变量。所有其他列都是数值。
例子:
这是原始数据
|Sci_Name|Honeybee_count|Other_bee_Obsevrved|Stem_count|
|---|---|---|---|
|紫蔘|1|5|10|
|绿色萝卜|15|1|3|
|中提琴未知|0|0|4|
|紫蔘|0|2|6|
|荸荠|3|6|3|
|绿色萝卜|8|2|17|
我想要:
Sci_Name
Honeybee_count
Other_bee_Obsevrved
Stem_count
金缕梅
4
13
19
绿色萝卜
23
3
20
中提琴未知
0
0
4
我目前正在从 table 格式的 CSV 文件中提取这些数据。我一直在尝试创建一个新的 table/data 框架,其中包含每个植物物种的一个条目,并为每个其他变量创建 blanks/0s,然后我可以使用它来将两者绑定在一起。然而,这充其量是笨拙的,我无法弄清楚如何让每一行自行检查。我对任何方法都持开放态度,让我知道你的想法!
谢谢 :D
我们可以使用base R
中aggregate
中的公式方法。在 ~
的右侧,指定分组变量,在左侧,使用 .
表示其余变量。将 FUN
指定为 sum
,它将按组
进行列式求和
aggregate(. ~ Sci_Name, df1, sum)
-输出
Sci_Name Honeybee_count Other_bee_Obsevrved Stem_count
1 Asclepias viridiflora 23 3 20
2 Viola unknown 0 0 4
3 Zizia aurea 4 13 19
数据
df1 <- structure(list(Sci_Name = c("Zizia aurea", "Asclepias viridiflora",
"Viola unknown", "Zizia aurea", "Zizia aurea", "Asclepias viridiflora"
), Honeybee_count = c(1L, 15L, 0L, 0L, 3L, 8L), Other_bee_Obsevrved = c(5L,
1L, 0L, 2L, 6L, 2L), Stem_count = c(10L, 3L, 4L, 6L, 3L, 17L)),
class = "data.frame", row.names = c(NA,
-6L))
我有一个通过观察记录的数据集(每个观察都有自己的一行数据)。我正在寻找 combine/condense 这些行,它们所在的工厂 - 当前是一个字符变量。所有其他列都是数值。
例子:
这是原始数据 |Sci_Name|Honeybee_count|Other_bee_Obsevrved|Stem_count| |---|---|---|---| |紫蔘|1|5|10| |绿色萝卜|15|1|3| |中提琴未知|0|0|4| |紫蔘|0|2|6| |荸荠|3|6|3| |绿色萝卜|8|2|17|
我想要:
Sci_Name | Honeybee_count | Other_bee_Obsevrved | Stem_count |
---|---|---|---|
金缕梅 | 4 | 13 | 19 |
绿色萝卜 | 23 | 3 | 20 |
中提琴未知 | 0 | 0 | 4 |
我目前正在从 table 格式的 CSV 文件中提取这些数据。我一直在尝试创建一个新的 table/data 框架,其中包含每个植物物种的一个条目,并为每个其他变量创建 blanks/0s,然后我可以使用它来将两者绑定在一起。然而,这充其量是笨拙的,我无法弄清楚如何让每一行自行检查。我对任何方法都持开放态度,让我知道你的想法!
谢谢 :D
我们可以使用base R
中aggregate
中的公式方法。在 ~
的右侧,指定分组变量,在左侧,使用 .
表示其余变量。将 FUN
指定为 sum
,它将按组
aggregate(. ~ Sci_Name, df1, sum)
-输出
Sci_Name Honeybee_count Other_bee_Obsevrved Stem_count
1 Asclepias viridiflora 23 3 20
2 Viola unknown 0 0 4
3 Zizia aurea 4 13 19
数据
df1 <- structure(list(Sci_Name = c("Zizia aurea", "Asclepias viridiflora",
"Viola unknown", "Zizia aurea", "Zizia aurea", "Asclepias viridiflora"
), Honeybee_count = c(1L, 15L, 0L, 0L, 3L, 8L), Other_bee_Obsevrved = c(5L,
1L, 0L, 2L, 6L, 2L), Stem_count = c(10L, 3L, 4L, 6L, 3L, 17L)),
class = "data.frame", row.names = c(NA,
-6L))