r - 重复 R 中的特定行
问题描述
我想在第 1 列中重复每一行有“肺气肿/慢性支气管炎”。对于每一个这样的重复,我想在第 2 列中有“肺气肿”作为 2 行之一,在第 2 列有“慢性支气管炎”另一个。我不确定我是否解释得很好 - 很抱歉造成混乱。
目前是这样的: 第 1 列示例:皮肤癌 直肠癌 肺气肿/慢性支气管炎
第 2 列示例:皮肤肿瘤 直肠肿瘤 NA
这就是我想要的样子: 第 1 列 示例:皮肤癌 直肠癌 肺气肿 慢性支气管炎
第 2 列示例: 皮肤肿瘤 直肠肿瘤 肺气肿 慢性支气管炎
解决方案
从描述中并不完全清楚,但这可能会对您有所帮助。
假设您有一个如下所示的 data.frame:
col1 col2
1 skin cancer Skin Neoplasms
2 rectal cancer Rectal Neoplasms
3 emphysema/chronic bronchitis <NA>
并且您想要拆分带有斜杠 (/) 的条目,例如在肺气肿和慢性支气管炎之间。
您可以使用separate_rows
from tidyr
,并使用 '/' 作为分隔符。您还可以包括coalesce
使用条目更新第 2 列(替换丢失的数据),例如第 1 列。据我所知,这与您的预期输出相匹配。
library(tidyverse)
df %>%
separate_rows(col1, sep = "/") %>%
mutate(col2 = coalesce(col1))
输出
col1 col2
<chr> <chr>
1 skin cancer skin cancer
2 rectal cancer rectal cancer
3 emphysema emphysema
4 chronic bronchitis chronic bronchitis
推荐阅读
- java - 如何用Java编写乘法表?
- vb.net - Modbus TCP 读寄存器
- excel - VBA代码终止后如何存储自定义对象以供使用
- python - 只获取一个与我在字典中的搜索匹配的值
- excel - 为什么我在 Access 数据库中通过 VBA 打开和关闭多个 Excel 工作簿时偶尔会出现错误 91
- javascript - 新文件阅读器();做出反应。迭代项目时
- python - 有没有办法将包含事件持续时间的日期索引数据框转换为显示每天事件的二进制数据数据框?
- android - 应用程序正在根设备上工作,但不能与 SuperSU 一起工作
- javascript - 在循环语句之外继续(在 some() 中)
- javascript - 使用 Vue.js 的事件总线与使用自己的实现的好处