R语言如何将dataframe中的2,3列取均值,3,4列取均值,4,5列取均值,5,6列取均值,7,8列取均值,9,10列取均值并保存至新的dataframe
时间: 2023-11-06 17:08:26 浏览: 36
你可以使用如下代码实现:
```R
# 假设原始数据框为df
df_new <- data.frame() # 创建一个新的数据框
for(i in seq(2, ncol(df), by=2)){
if(i+1 <= ncol(df)){
col_mean <- (df[, i] + df[, i+1])/2 # 计算相邻两列的均值
col_name <- paste(colnames(df)[i], colnames(df)[i+1], sep="_") # 创建新列名
df_new[, col_name] <- col_mean # 将新列添加到新数据框中
}
}
```
这段代码中,`seq(2, ncol(df), by=2)` 表示从第2列开始,每隔2列取一次,直到数据框的最后一列。使用循环遍历每一对相邻列,计算均值并保存到新的数据框中。`if(i+1 <= ncol(df))` 判断当前列和下一列是否超出了数据框的列数,如果超出则不进行计算和添加。
相关问题
r语言dataframe中求一列的均值和标准差,将均值三倍标准差之外的删掉
在R语言中,可以使用以下代码来求一列的均值和标准差,并将均值三倍标准差之外的值删除:
```R
# 创建一个示例的dataframe
df <- data.frame(col = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
# 求均值和标准差
mean_val <- df[df$col >= (mean_val - 3 * sd_val) & df$col <= (mean_val + 3 * sd_val), ]
```
相关问题:
1. 如何在R语言中求一列的均值和标准差?
2. 如何使用R语言删除dataframe中均值三倍标准差之外的值?
3. R语言中如何创建一个dataframe?
R语言用mean函数对dataframe相邻列取均值
可以使用以下代码对R语言中的dataframe相邻列取均值:
```
# 创建一个示例dataframe
df <- data.frame(col1 = c(1, 2, 3), col2 = c(4, 5, 6), col3 = c(7, 8, 9))
# 使用apply函数对相邻列取均值
apply(df[, 1:ncol(df)-1], 2, function(x) mean(x + df[, 2:ncol(df)][, 1]))
```
其中,`df[, 1:ncol(df)-1]`选择了dataframe中除了最后一列外的所有列,`df[, 2:ncol(df)]`选择了dataframe中除了第一列外的所有列。`x + df[, 2:ncol(df)][, 1]`将每一列和其后一列相加,求得相邻列的和。`apply()`函数对每一列进行函数操作,`2`表示按列操作,`function(x) mean(x + df[, 2:ncol(df)][, 1])`表示对每一列进行求均值操作。