我继续低于输出:
[1] 0 0 0 22
而不是
[1] 19 21 21 22
下面的每行最大数量"数据"文件:
A B C
1 1 19 10
2 2 20 11
3 3 21 12
4 4 22 13
使用的功能:
f <- function(x) {
for (i in 1:4) z<- x[i,1:3]
count <- max(z)
y<- vector(length = 4)
y[i] <- count
return(print(y))
}
运行该功能:
f5 <- f(data)
问题是如何让系统在向量中写入每个循环输出而不擦除任何循环输出!
提前谢谢你,
答案 0 :(得分:4)
我们不需要循环,只需使用pmax
do.call(pmax, df1)
#[1] 19 20 21 22
如果我们需要使用for
循环,最好创建一个长度等于数据集('v')行数的vector
并分配'v'的每个元素'使用循环遍历每行的max
f <- function(dat) {
v <- numeric(nrow(dat))
for (i in seq_len(nrow(dat))) {
v[i] <- max(unlist(dat[i,]))
}
v
}
f(df1)
#[1] 19 20 21 22