我想将数据帧df1转换为数据帧df2.

id <- c(1,2,3)
outcome_1 <- c(1,0,1)
outcome_2 <- c(1,1,0)
df1 <- data.frame(id,outcome_1,outcome_2) 
id <- c(1,2,3)
outcome <- c("1,2","2","1")
df2 <- data.frame(id,outcome) 

以下问题的答案几乎符合我的要求,但在我的情况下,一行可以有多个积极结果(例如,第一行需要是"1,2").此外,我希望生成的列是字符列.

R: Converting multiple binary columns into one factor variable whose factors are binary column names

请帮忙.非常感谢.

推荐答案

以下是tidyverse种方法:

library(dplyr)
library(tidyr)

df1 %>% 
  mutate(across(-id, ~case_when(. == 1 ~ cur_column()), .names = 'new_{col}'), .keep="unused") %>% 
  unite(outcome, starts_with('new'), na.rm = TRUE, sep = ', ') %>% 
  mutate(outcome = gsub('outcome_', '', outcome))
  id outcome
1  1    1, 2
2  2       2
3  3       1

R相关问答推荐

R的GG平行坐标图中的排序变量

如何对数据集进行逆向工程?

次级y轴R gggplot2

在使用ggroove后,将图例合并在gplot中

如何从R中的字符串元素中减go 一个数字?

使用geom_segment()对y轴排序

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

给定开始日期和月份(数字),如何根据R中的开始日期和月数创建日期列

在R函数中使用加号

以NA为通配符的R中的FULL_JOIN以匹配其他数据中的任何值.Frame

R -在先前group_by级别汇总时获取最大大小子组的计数

在数据帧列表上绘制GGPUP

根据纬度和距离连接两个数据集

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?

在散点图中使用geom_point放置线图例

计算使一组输入值最小化的a、b和c的值

是否有可能从边界中找到一个点值?

Conditional documentr::R中数据帧的summarize()

reshape 数据帧-基于组将行转换为列

如何从矩阵绘制环弦图