r - 添加 2 列并在 2 (R) 之后创建新列
问题描述
假设我有一个包含 a、b、c、d、e、f、g、h 列的数据框。
我想将 d 和 e 列的值相加,并在 d 和 e 之后创建一个包含结果的列,使其变为:
a,b,c,d,e,新列,f,g,h
有没有办法做到这一点?因为我发现在 R 中重新排序列非常令人沮丧,特别是当你有一个包含许多列的巨大数据框时。
任何帮助表示赞赏!
解决方案
和dplyr
library(dplyr)
data %>%
mutate(newcolumn = d + e) %>%
select(a,b,c,d,e,newcolumn,f,g,h)
和data.table
setDT(data)
data[,newcolumn := d + e,]
setcolorder(data, c("a","b","c","d","e","newcolumn")
和tibble
library(tibble)
add_column(data, "newcolumn" = data$d + data$e, .after = "e")
和base
data <- within(data, newcolumn <- d + e)
data <- data[, c(1:5, 9, 6:8)]
推荐阅读
- angular - 在 Angular 5 中动态添加生命周期方法
- css - Vis.js 组背景样式
- html - 在不使用 100vh 的情况下强制 div 为整页高度
- gremlin - 顶点属性从 Gremlin 控制台更改,但不是从 Python 脚本更改
- raku - Perl6 cmp 两个字符串可以不区分大小写吗?
- c# - 单击第一个数据网格行不触发 selectedIndex 更改
- node.js - webpack-dev-server 不会在启动时创建初始包
- java - 在 java 8 流中将映射转换为更扁平的结构
- typescript - 带有 TypeScript 3.0 的 Visual Studio Code 1.25 变得非常慢
- javascript - 在深度优先遍历中理解 JavaScript 递归和调用栈