如何用R将两列求和并保存为新列?结果格式不符求助
在R中给数据框添加两列求和新列的方法
常用实现方式
基础R写法
- 直接给数据框新增列(最直观)
# 直接把求和结果存入原数据框的新列 Sweden$Sweden.pyall <- Sweden$py.men + Sweden$py.women - 用
transform()函数批量生成新列Sweden <- transform(Sweden, Sweden.pyall = py.men + py.women)
tidyverse工具链(推荐,代码更简洁易维护)
用dplyr包的mutate()函数,适合多步骤数据处理:
library(dplyr) Sweden <- Sweden %>% mutate(Sweden.pyall = py.men + py.women)
解决你的结果显示问题
你当前的代码Sweden_py.all <- (Sweden$py.men + Sweden$py.women)其实已经生成了一个数值向量,但你需要把它嵌入到原数据框中作为新列,而不是单独存成一个变量。单独存储时,部分查看工具可能会把向量显示成一行,但它本质是按顺序排列的数值集合。
按上面的正确写法赋值后,查看Sweden数据框时,Sweden.pyall就会是和其他列一样的竖排结构。
另外排查下可能的异常情况:
- 确认
py.men和py.women是数值型向量:用class(Sweden$py.men)检查,如果是列表类型,先转成数值:Sweden$py.men <- as.numeric(unlist(Sweden$py.men)) Sweden$py.women <- as.numeric(unlist(Sweden$py.women))
转完再执行求和赋值,就能得到正常的竖排列了。
内容的提问来源于stack exchange,提问作者Giulia Petrilli
相关产品推荐
相关产品推荐

