r - 根据R中的变量条件添加行
问题描述
我有 df 如下
df
ID type other-col
1 A1 cc
1 A2 dd
1 A3 cc
2 A1 cc
2 B1 aa
3 A2 aa
我想在“ID”随“type”和“other-col”列的F值变化时添加新的
new_df
ID
df
ID type other-col
1 A1 cc
1 A2 dd
1 A3 cc
1 F F <- this row added
2 A1 cc
2 B1 aa
2 F F <- this row added
3 A2 aa
我怎么能在 R 中做到这一点?谢谢
解决方案
一旦您知道每个更改发生位置的索引,这应该可以在单个替换操作中实现。例如:
idx <- match(unique(df$ID), df$ID)[-1] - 1
df <- df[sort(c(sequence(nrow(df)),idx)),]
df[seq_along(idx) + idx, c("type","other_col")] <- "F"
# ID type other_col
#1 1 A1 cc
#2 1 A2 dd
#3 1 A3 cc
#3.1 1 F F
#4 2 A1 cc
#5 2 B1 aa
#5.1 2 F F
#6 3 A2 aa
在哪里df
:
df <- read.table(text="ID type other_col
1 A1 cc
1 A2 dd
1 A3 cc
2 A1 cc
2 B1 aa
3 A2 aa", header=TRUE, stringsAsFactors=FALSE)
推荐阅读
- spring - org.springframework.oxm.UncategorizedMappingException:使用 Spring WebserviceTemplate 的未知 JAXB 异常
- javascript - 在字符串中搜索以任意顺序输入的单词
- php - 如何使用 AJAX 在循环中更新 ACF 字段
- javascript - 在 java 中使用 nodejs 模块(graalvm,缺少加密)
- nginx - 对“github.com”使用 nginx 代理(不是反向代理!)
- asp.net-core - 如何根据用户单击的按钮填充字段?
- asp.net - 如何将 JSON 结构的文件从 React 应用程序发送到 API REST NET Core
- javascript - d3.js - 每个句子重置位置变量
- swift - SwiftUI 标题字体
- homebrew - 手动解决自制公式中的错误