【发布时间】:2021-10-27 06:18:40
【问题描述】:
我想在第 1 列中重复出现“肺气肿/慢性支气管炎”的每一行。对于每次这样的重复,我想在第 2 列中为 2 行中的一行显示“肺气肿”,在第 2 列中显示“慢性支气管炎”另一列的第 2 列。我不确定我是否解释得很好 - 很抱歉造成混乱。
目前是这样的: 第 1 列示例: 皮肤癌 直肠癌 肺气肿/慢性支气管炎
第 2 列示例: 皮肤肿瘤 直肠肿瘤 不适用
这就是我想要的样子: 第 1 列示例: 皮肤癌 直肠癌 气肿 慢性支气管炎
第 2 列示例: 皮肤肿瘤 直肠肿瘤 气肿 慢性支气管炎
【问题讨论】:
-
rbind(df,df[23,]) -
对于您要重复的内容是否有一般规则?您是否总是只想重复第 23 行?新创建的行在哪里结束有关系吗?如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能的解决方案的示例输入和所需输出,那么为您提供帮助会更容易。
-
df[ c(seq_int(nrow(df)) , 23) , ]。只是一组带有额外 23 的整数行索引。
-
根据@user2974951 的评论,执行此操作的一般功能是:
rep_rows <- function(x, rows) {rbind(x, x[rows, ])}。你可以这样使用它:rep_rows(df, 23)或者你可以有几行重复:rep_rows(df, c(23, 24, 30:34)) -
@Nivi 根据 cmets,您可能值得编辑您的问题并澄清上下文。例如,您是否有第 1 列,其中行值可能包含多个诊断(例如,肺气肿和慢性支气管炎),并且您希望将这些诊断包含在第 2 列的不同行中?更详细地描述您目前在数据方面拥有的内容,以及您最终想要拥有的内容(这是上面提到的“可重现的示例”),在这里真的会有很大帮助。它不需要很复杂 - 甚至是一个示例,几行示例组成的数据开始。