使用if和else语句附加数据框,或者如何将print放入数据框中

时间:2015-06-22 03:15:48

标签: r loops dataframe append

如何使用for循环和if else语句将我在数据框中打印的内容放入? 基本上,这段代码:

list<-c("10","20","5")
for (j in 1:3){
  if (list[j] < 8) 
    print("Greater")
  else print("Less")
})
#[1] "Less"
#[1] "Less"
#[1] "Greater"

或者它应该是更像这样的东西?

f3 <- function(n){
  df <- data.frame(x = numeric(n), y = character(n), stringsAsFactors = FALSE)
  for(j in 1:3){
    if (list[j] < 8)
    df$x[j] <- j
    df$y[j] <- toString(Greater)
    else
    df$y[j] <- toString(Less)
  }
  df
}

1 个答案:

答案 0 :(得分:2)

尝试一次一行地向data.frame添加行通常不是一个好主意。最好一次生成所有列数据,然后将其放入data.frame中。对于您的具体示例,ifelse()功能可以提供帮助

list<-c(10,20,5)
data.frame(x=list, y=ifelse(list<8, "Greater","Less"))