r - 合并多列,但只保留 r 中的最大值
问题描述
我有一个大数据框。我想合并 edu0、edu1、edu2、edu3 列并创建新列,但只保留列中每个参与者 (id) 的最大值。在新的 edu 列中可以包含 NA。不得更改 ID 或参与者的顺序。我怎么做?
下面的示例数据。
df <- data.frame(id = 11:60, edu0=1:50, edu1=rnorm(50), edu2=rpois(50, 10), edu3= 0:49)
library(naniar)
df <- df %>%
replace_with_na(replace = list(edu0 = c(5,11),
edu1 = c(1.1357996, -0.2710641),
edu2 = c(8, 12, 14, 15),
edu3= c(3, 5, 6, 7, 9, 11, 15)))
解决方案
您是否希望从每行中创建一个具有最大值的列?如果是这样,只需使用一个简单的应用功能。
df$maximum <- apply(X = df[,2:5], #data.frame without your id column
MARGIN = 1, #apply this function over rows
FUN = function(x) max(x,na.rm = TRUE) #maximum function with NA removed.
)
推荐阅读
- javascript - Fastify & Socket.io CORS 不被接受
- angular - Angular - 包含在自定义组件中的输入不能以模板驱动的形式工作
- testing - Testcafe:有没有办法在 dom 中加载目标元素后进一步停止页面加载?
- audio - 如何在 wordpress 网站中实现混音器
- string - ToArray 和 ToString 返回(单位 -> 字符串),而不是字符串。我该怎么办?
- php - 无法使用 PHP 访问 JSON 数据
- macos - 如果迭代次数太高 Mac 终端不输出
- slack - 多个开发人员如何开发一个 Slack 应用程序?
- python - gradle 与 conda 和 pyenv 的交互
- python-3.x - 将 PySpark 数据帧转换为 pandas 数据帧的时间长度