我有以下问题:
“定义一个函数pick_columns,它接受一个向量v并返回一个数据表,该数据表包含在v中找到其名称的航班中的所有列。已经为您提供了该函数的骨架。”
我有以下功能:
pick_columns = function(v){
return(flights[,v])
}
pick_columns(你好$月,你好$ year) - 这是我的测试案例
我需要输入由一个列名或多个列名组成的输入,这些输入可以提取由输入的列名组成的数据表。我希望你们能帮忙。谢谢!
答案 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