r - 添加具有特定值的列
问题描述
我现在有一个看起来像这样的表(虽然我总共有 2000 行),并且需要添加另一列具有特定值的列。到目前为止,这是我的原始数据:
家庭 | FIID |
---|---|
1034 | 10341 |
1034 | 10343 |
1034 | 10344 |
1056 | 10561 |
1056 | 10563 |
1056 | 10564 |
1101 | 11011 |
1101 | 11012 |
1101 | 11013 |
1101 | 11014 |
最终,我需要包含每个 FIID 值的父母 ID 的添加列。但是,我只需要在 FIID 以 1 或 2 结尾后填写父母 ID。所以,最终,我需要它看起来像这样:
家庭 | FIID | PID |
---|---|---|
1034 | 10341 | 10343 |
1034 | 10343 | 0 |
1034 | 10344 | 0 |
1056 | 10561 | 10563 |
1056 | 10563 | 0 |
1056 | 10564 | 0 |
1101 | 11011 | 11013 |
1101 | 11012 | 11013 |
1101 | 11013 | 0 |
1101 | 11014 | 0 |
因此,我只需要每个以 1 或 2 结尾的 FIID 之后的父母 ID,但我的表中没有一致的模式,因此我无法使用模式函数添加父母 ID。任何以 3 或 4 结尾的 FIID 都需要接收零的父母 ID。
任何帮助都会很棒。
谢谢。
解决方案
在没有可重现数据的情况下,这里有一个模拟数据的解决方案。
df$PID <- ifelse(grepl("(1|2)$", df$FIID), sub("(\\d+)\\d$", "\\13", df$FIID),0)
结果:
df
FIID PID
1 1231 1233
2 1233 0
3 1230 0
4 1234 0
5 1232 1233
数据:
df <- data.frame(
FIID = c(1231, 1233, 1230, 1234, 1232)
)
推荐阅读
- macos - 从 rtf 文件在终端中运行文本行
- php - 有没有办法在 dompdf 中添加边距或缩放?
- git - 通过 OneDrive 在 2 台不同的计算机上使用 Git
- android - Android多文件下载同时更新ui
- excel - 无法从 .range.value 中获取价值
- java - 基于postgres查询的Spring数据jpa规范
- javascript - react JS中的分页
- python - 如何仅从给定的起点将文本文件中的数据附加到列表中,而不是使用 python 附加完整文件
- google-chrome - 使用 Chrome 扩展来调整未停靠的开发工具窗口的大小
- c# - Selenium C# 版本错误,但仅在应用程序发布时。(此版本的 ChromeDriver 仅支持...)