R语言如何将dataframe中的49列数据从第2列起每相邻两列取均值,不重复取,并保存至新的dataframe
时间: 2024-02-18 16:05:45 浏览: 136
可以使用如下代码实现:
```R
# 假设原始数据框为df
df_new <- data.frame() # 创建一个新的数据框
for(i in seq(2, ncol(df), by=2)){
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列取一次,直到数据框的最后一列。使用循环遍历每一对相邻列,计算均值并保存到新的数据框中。`paste(colnames(df)[i], colnames(df)[i+1], sep="_")` 将相邻两列的列名用下划线连接起来作为新的列名。
相关问题
R语言用mean函数对dataframe两列取均值
可以使用以下代码对R语言中的dataframe两列取均值:
```
# 创建一个示例dataframe
df <- data.frame(col1 = c(1, 2, 3), col2 = c(4, 5, 6))
# 使用mean函数对两列取均值
mean(df$col1)
mean(df$col2)
```
其中,`df$col1`和`df$col2`分别表示dataframe中的两列,通过`mean()`函数对其求均值。
R语言如何将dataframe中的2,3列取均值,3,4列取均值,4,5列取均值,5,6列取均值,7,8列取均值,9,10列取均值并保存至新的dataframe
你可以使用如下代码实现:
```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))` 判断当前列和下一列是否超出了数据框的列数,如果超出则不进行计算和添加。
阅读全文