在R函数中自动将列添加到data.frame

时间:2019-05-12 04:24:38

标签: r function dataframe subset

在下面的函数foo中,参数long接受二进制T/F输入的 vector 。给定函数中名为data.frame的{​​{1}},我希望函数添加一个名为out的列,并用"long" s填充T输入,并T自变量的F输入的F。另外,我希望函数添加一个名为"long"的列,并为"short"输入填充F,为T输入填充T F参数。

这是我尝试的没有成功的事情:

"long"

1 个答案:

答案 0 :(得分:1)

你可以做

foo <- function(d, long){
  data.frame(d, long = long, short = !long)
}

foo(d = 1:3, long = c(T, F,T))

#  d  long short
#1 1  TRUE FALSE
#2 2 FALSE  TRUE
#3 3  TRUE FALSE

或者如果只想输出为"T""F"

foo <- function(d, long){
   out <- data.frame(d, long = long, short = !long)
   transform(out, long = substr(long, 1, 1), short = substr(short, 1, 1))
}

foo(d = 1:3, long = c(T, F,T))
#  d long short
#1 1    T     F
#2 2    F     T
#3 3    T     F