如何创建一个从R中的表中提取列向量的函数

时间:2018-01-24 15:26:26

标签: r

我有以下问题:

“定义一个函数pick_columns,它接受一个向量v并返回一个数据表,该数据表包含在v中找到其名称的航班中的所有列。已经为您提供了该函数的骨架。”

我有以下功能:

pick_columns = function(v){

return(flights[,v])

}

pick_columns(你好$月,你好$ year) - 这是我的测试案例

我需要输入由一个列名或多个列名组成的输入,这些输入可以提取由输入的列名组成的数据表。我希望你们能帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

有很多方法可以处理它。我不确定你为什么要寻找一个功能,因为有直接的方法。仍然让我展示一些方法,包括一个功能。

df <- data.frame(
  name = c( "a", "b", "c", "d" ),
  x = c( 3, 2, 1, 2 ),
  y = c( 4, 3, 4, 3 ),
  z = c( 8, 9, 6, 7 ) )

v <- c("name", "x")

Sol 1:直接数据框

> df[,which(names(df) %in% v)]
  name x
1    a 3
2    b 2
3    c 1
4    d 2

Sol 2:函数调用

pick_columns <- function(v){
  temp <- df[,which(names(df) %in% v)]
}

> a <- pick_columns(v)
> a
  name x
1    a 3
2    b 2
3    c 1
4    d 2

Sol 3:Data.Table方式

DT <- data.table(df)
> DT[, .SD, .SDcols=v]
   name x
1:    a 3
2:    b 2
3:    c 1
4:    d 2