如何使用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
}
答案 0 :(得分:2)
尝试一次一行地向data.frame添加行通常不是一个好主意。最好一次生成所有列数据,然后将其放入data.frame中。对于您的具体示例,ifelse()
功能可以提供帮助
list<-c(10,20,5)
data.frame(x=list, y=ifelse(list<8, "Greater","Less"))