R 使用pmin从列选择中选择行最小值
给定一个示例df(实际数据包含>100列) 但是,如果我想用contains()选择包含“x”的所有列,但以下操作失败R 使用pmin从列选择中选择行最小值,r,dplyr,R,Dplyr,给定一个示例df(实际数据包含>100列) 但是,如果我想用contains()选择包含“x”的所有列,但以下操作失败 df %>% mutate( minx = pmin( contains("x"), na.rm = TRUE ) ) Error in mutate_impl(.data, dots) : Evaluation error: Variable context not set. 为什么不能使用contains()选择要与pmap一起使用的列?我在这里做错了什么?使
df %>% mutate( minx = pmin( contains("x"), na.rm = TRUE ) )
Error in mutate_impl(.data, dots) :
Evaluation error: Variable context not set.
为什么不能使用contains()选择要与pmap一起使用的列?我在这里做错了什么?使用base
R
df$minx <- apply(df[, grepl('x', names(df))], 1, min)
使用基本
R
df$minx <- apply(df[, grepl('x', names(df))], 1, min)
这里有一个选择
library(tidyverse)
df %>%
select(contains("x")) %>%
reduce(pmin) %>%
mutate(df, minx = .)
或者正如注释中提到的@Wimpel,
select
可以嵌套在mutate
调用中
df %>%
mutate(minx = select(., contains("x")) %>%
reduce(pmin, na.rm = TRUE))
这里有一个选择
library(tidyverse)
df %>%
select(contains("x")) %>%
reduce(pmin) %>%
mutate(df, minx = .)
或者正如注释中提到的@Wimpel,
select
可以嵌套在mutate
调用中
df %>%
mutate(minx = select(., contains("x")) %>%
reduce(pmin, na.rm = TRUE))
这个怎么样
df$minx我不知道tidyverse,但是IIRS,contains
是一个select
函数助手,不用于mutate
@Prem应该是2
,用于列式应用。@count对行式操作不感兴趣?conains()
仅在select()中可用,你必须使用mutate\u at()
这个怎么样df$minx我不知道tidyverse,但是IIRS,contains
是一个select
函数助手,不用于mutate
@Prem应该是2
,用于列式应用。@count对行式操作不感兴趣?conains()
仅在select()中可用,您必须使用mutate_at()
您可以在base Rdo.call(pmin,df[grepl('x',names(df)))中执行相同的操作。使用apply
加1边距通常是一个错误的决定,也是一个有效的解决方案,但是@akrun提供的管道代码答案更适合我的需要。不过非常感谢你的回答。。每天学习:)你可以在base Rdo.call(pmin,df[grepl('x',names(df)))中做同样的事情。
。使用apply
加1边距通常是一个错误的决定,也是一个有效的解决方案,但是@akrun提供的管道代码答案更适合我的需要。不过非常感谢你的回答。。每天学习:)这工作完美无瑕,也适用于我的生产数据!tidyverse语法与我的其余代码完美契合。非常感谢你!为了能够在一行代码的数据中创建mutate=minx
,而不干扰我的数据。frame,我将代码调整了一点:df2%%>%mutate(minx=select(df,contains(“x”))%%>%reduce(pmin,na.rm=TRUE))%%>%
这对我的生产数据来说也是完美的!tidyverse语法与我的其余代码完美契合。非常感谢你!为了能够在一行代码的数据中创建mutate=minx
,而不干扰我的data.frame,我将代码调整了一点:df2%%>%mutate(minx=select(df,contains(“x”))%%>%reduce(pmin,na.rm=TRUE))%%>%