R 我应该使用什么函数返回字符向量?

R 我应该使用什么函数返回字符向量?,r,function,if-statement,vector,R,Function,If Statement,Vector,我有一个数据集,看起来像这样: state.x77[1,] 人口收入文盲生活经验 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 地区 50708.00 as.numeric(state.x77[1,]) [1] 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 50708.00 我想要这样的东西: `[1] “亚利桑那”“华盛顿” 谢谢 您可以首先

我有一个数据集,看起来像这样:

  state.x77[1,]
人口收入文盲生活经验 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 地区 50708.00

as.numeric(state.x77[1,]) [1] 3615.00 3624.00 2.10 69.05 15.10 41.30 20.00 50708.00

我想要这样的东西: `[1] “亚利桑那”“华盛顿”


谢谢

您可以首先选择要应用的列
mean
sd
。假设您想要以
“P”
结尾的列。然后计算行
sd
和行
mean
,比较值并返回相应的
基因符号

cols <- grep("P$", names(df))
df$gene_symbol[apply(df[cols],1,sd, na.rm = TRUE) > rowMeans(df[cols],na.rm = TRUE)]

您可以首先选择要应用的列
mean
sd
。假设您想要以
“P”
结尾的列。然后计算行
sd
和行
mean
,比较值并返回相应的
基因符号

cols <- grep("P$", names(df))
df$gene_symbol[apply(df[cols],1,sd, na.rm = TRUE) > rowMeans(df[cols],na.rm = TRUE)]

下面是一个
purr
解决方案:

df[pmap_lgl(df %>% select(starts_with("L0")), ~sd(c(...))>mean(c(...))), "gene_symbol"]

这会将以
L0
开头的所有列传递给一个函数,该函数比较
sd
mean
然后返回一个逻辑向量,该向量从数据帧中选择相关行。(这假设您的数据帧被称为
df
dplyr
是管道操作员和
选择
功能所必需的。

以下是
purrr
解决方案:

df[pmap_lgl(df %>% select(starts_with("L0")), ~sd(c(...))>mean(c(...))), "gene_symbol"]
这会将以
L0
开头的所有列传递给一个函数,该函数比较
sd
mean
然后返回一个逻辑向量,该向量从数据帧中选择相关行。(这假设您的数据帧被称为
df
dplyr
是管道操作符和
选择
功能所必需的