【问题标题】:How to apply specific columns to sapply function in R?如何将特定列应用于 R 中的 sapply 函数?
【发布时间】:2020-05-24 13:22:26
【问题描述】:

例如:

sapply(cars[2:3], FUN = IQR)

但是如果我想要索引 2 和 5 呢?还有什么方法可以代替索引而不是使用列名?

【问题讨论】:

标签: r


【解决方案1】:

我们可以使用匿名函数

sapply(names(cars)[1:2], function(x) IQR(cars[[x]]))

如果我们想要第 2 列和第 5 列,请使用 c 而不是 seq 运算符(使用不同的数据集,因为 cars 只有两列)

sapply(mtcars[c(2, 5)], IQR)
#   cyl drat  
# 4.00 0.84 

【讨论】:

  • 如果我们传递一个向量,例如 2、5,我们也可以使用列名吗?
  • @MilesMorales 您可以使用数字索引或名称。使用数字索引对名称进行子集化然后获取列是没有意义的。即v1 <- c(2, 5) 我们可以直接做sapply(mtcars[v1], IQR) 而不是sapply(mtcars[names(mtcars)[v1]], IQR) 尽管两者都给出相同的答案
  • 我确认这行得通! sapply(cars[c("price","passengers")], FUN = IQR),感谢您的帮助!
  • 会的!这只是堆栈溢出让您等待几分钟才允许回答。感谢您的快速解决!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 2020-11-22
  • 2023-03-28
  • 2017-05-24
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多