You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中对含逗号分隔值的列计算行均值的问题

解决方案

以下是实现需求的R代码,分步骤说明:

步骤1:加载必要包并预处理数据

先加载tidyr和dplyr包(未安装的话先运行install.packages(c("tidyr", "dplyr"))),然后将数据中的.替换为缺失值NA:

library(tidyr)
library(dplyr)

# 读取原始数据
df <- read.table(text="A     B      C      D
1,2   .      1,3    1,4
2,1   1,1    1,1    2,3  ", header=TRUE)

# 将"."替换为NA
df[df == "."] <- NA

步骤2:拆分所有列的逗号分隔值

用str_split_fixed拆分每一列的逗号分隔内容,拆为两个子列后统一命名规则,再转换为数值类型:

# 拆分所有列并展开为多列
split_df <- df %>%
  mutate(across(everything(), ~str_split_fixed(., ",", 2))) %>%
  unnest_wider(everything(), names_sep = "_")

# 转换为数值型
split_df <- split_df %>%
  mutate(across(everything(), as.numeric))

步骤3:计算每行的均值

提取所有第一位置的列(后缀_1)和第二位置的列(后缀_2),按行计算均值:

result <- split_df %>%
  rowwise() %>%
  mutate(
    Value_1_mean = mean(c(A_1, B_1, C_1, D_1), na.rm = TRUE),
    Value_2_mean = mean(c(A_2, B_2, C_2, D_2), na.rm = TRUE)
  ) %>%
  select(Value_1_mean, Value_2_mean)

# 查看结果
print(result)

运行结果

执行后输出:

# A tibble: 2 × 2
  Value_1_mean Value_2_mean
         <dbl>        <dbl>
1            1            3
2          1.5          1.5

如果需要添加自定义行标签,可执行:

rownames(result) <- c("First value of comma in first row", "First value of comma in second row")
print(result)

输出:

Value_1_mean Value_2_mean
First value of comma in first row                1            3
First value of comma in second row              1.5          1.5

内容的提问来源于stack exchange,提问作者Gabriel G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:58:15