【发布时间】:2023-03-12 06:59:01
【问题描述】:
我想创建一个执行以下操作的函数: 接受一个数据集 检查全局变量 x 是 0 还是 1 如果 x 为 0,那么它应该将 x 变为 1 并返回没有第一行的数据集 如果 x 为 1,那么它应该离开 x 并返回每一行。
数据集是
mid counts
1 -2.25 3
2 -1.75 6
3 -1.25 14
4 -0.75 14
5 -0.25 17
6 0.25 19
7 0.75 12
8 1.25 9
9 1.75 4
10 2.25 2
11 2.25 -3
12 2.75 -6
13 3.25 -14
14 3.75 -14
15 4.25 -17
16 4.75 -19
17 5.25 -12
18 5.75 -9
19 6.25 -4
20 6.75 -2
我现在拥有的功能
testfunc = function(set){
print(x)
for(i in 1:nrow(set)){
ifelse(x == 0, x <<- 1, return(set[i]))
}
}
这给出了 x 的打印结果,并且只给出了数据集的计数行,而第一行没有遗漏。
【问题讨论】:
-
我不确定我是否理解,
x不依赖于i,因此不需要循环,如果x == 0和i == 1将始终返回。在这种情况下,返回值将是set[-1, ]。 -
基本上我需要知道为什么
ifelse(x == 0, x <<- 1, return(set[i]))没有在x == 0时删除第一行而是给出整个集合以及为什么返回只是集合的第二列。 -
查看答案。
-
@RuiBarradas 谢谢
标签: r for-loop if-statement