r语言如何按某三列求另一列均值并以数据框输出
时间: 2023-11-22 19:56:28 浏览: 48
假设有一个数据框 `df`,其中包含列 A、B、C 和 D,你可以使用以下代码按照 A、B 和 C 列的组合来计算 D 列的平均值,并将结果存储在新的数据框 `result` 中:
```r
result <- aggregate(D ~ A + B + C, data = df, FUN = mean)
```
在这个代码中,`aggregate()` 函数按照 A、B 和 C 列的组合对数据框 `df` 进行分组,并对每个组中的 D 列计算平均值。最终结果存储在新的数据框 `result` 中。
如果你只想按照 A 和 B 列的组合来计算 D 列的平均值,可以使用以下代码:
```r
result <- aggregate(D ~ A + B, data = df, FUN = mean)
```
同样,这个代码中,`aggregate()` 函数按照 A 和 B 列的组合对数据框 `df` 进行分组,并对每个组中的 D 列计算平均值。最终结果存储在新的数据框 `result` 中。
相关问题
R语言根据名为df的宽数据数据框中名ID的列分组,相同ID的为一组,并求得该组其余各列的均值,以代替组内全部的数据输出
您可以使用R语言中的dplyr包来实现这个任务。下面是一个示例代码,可以根据df数据框中的ID列进行分组,并计算每个组内其他列的均值。
```R
library(dplyr)
df <- data.frame(ID = c(1, 1, 2, 2, 3, 3),
col1 = c(10, 20, 30, 40, 50, 60),
col2 = c(2, 4, 6, 8, 10, 12))
df_new <- df %>%
group_by(ID) %>%
mutate(across(-ID, mean)) %>%
distinct(ID, .keep_all = TRUE)
df_new
```
这段代码首先加载了dplyr包,然后定义了一个名为df的数据框,其中包含ID列和其他列。接下来,使用`group_by(ID)`将数据框按照ID列进行分组。然后,使用`mutate(across(-ID, mean))`计算每个组内其他列的均值,并将结果存储在新的列中。最后,使用`distinct(ID, .keep_all = TRUE)`保留每个组的唯一行。
这样,您就可以得到一个新的数据框df_new,其中每个组的其他列都被均值所代替。
R语言根据名为df的宽数据数据框中名ID的列分组,相同ID的为一组,并求得该组其余各列的均值,如有空值则不参与均值计算,并将得到的组内各行均值以代替组内全部的数据输出,
如果您想在计算均值时忽略含有空值的数据,您可以使用`na.rm = TRUE`参数。下面是一个修改后的示例代码,可以根据df数据框中的ID列进行分组,并计算每个组内其他列的均值(忽略空值),然后将得到的组内各行均值代替组内全部的数据输出。
```R
library(dplyr)
df <- data.frame(ID = c(1, 1, 2, 2, 3, 3),
col1 = c(10, NA, 30, 40, NA, 60),
col2 = c(2, 4, NA, 8, 10, NA))
df_new <- df %>%
group_by(ID) %>%
mutate(across(-ID, ~ mean(., na.rm = TRUE))) %>%
distinct(ID, .keep_all = TRUE)
df_new
```
在这个代码中,我们使用`mutate(across(-ID, ~ mean(., na.rm = TRUE)))`来计算每个组内其他列的均值。`mean`函数的`na.rm`参数设为`TRUE`,这样可以忽略含有空值的数据。最后,使用`distinct(ID, .keep_all = TRUE)`保留每个组的唯一行。
这样,您就可以得到一个新的数据框df_new,其中每个组的其他列都被组内各行的均值所代替,并且空值不参与均值计算。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)