Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句中长度为零的R参数_R_Loops_If Statement - Fatal编程技术网

if语句中长度为零的R参数

if语句中长度为零的R参数,r,loops,if-statement,R,Loops,If Statement,我有一个df df <- data.frame(id = c(1, 1, 2, 2, 3, 3, 3), year = c(1997,1997,1997,1997,1998,1998,1998), usable = c(TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), main = c(TRUE, TRUE, FALSE, FALSE, TRUE

我有一个df

df <- data.frame(id = c(1, 1, 2, 2, 3, 3, 3), 
                 year = c(1997,1997,1997,1997,1998,1998,1998),
                 usable = c(TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE),
                 main = c(TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE))

df该问题最有可能是由于创建了未使用的
级别
,因为在
交互

df$id_year <- interaction(df$id, df$year, drop = TRUE)

你想通过
做什么!唯一的(df$main[rows]
?它是一个向量,但你似乎认为它是一个布尔值。Liselotte,我知道特定的代码不起作用。你认为
unique
返回什么?试试
unique(c(1,1,2,3))
,看看它是(1)不是
逻辑的
,或者是可以推断出来的;和(2)根据输出的外观,不能保证长度为1。您需要
df$id\u year 0)
@akrun:非常感谢。现在行了Lisolette别为你一直问我道歉。。。如果你不问,你就不会得到答案。我很高兴akrun的答案对您有效,我希望您能在这之后快速前进。:-)
df$id_year <- interaction(df$id, df$year, drop = TRUE)
for (i in levels(df$id_year)) {
   rows <- df$id_year == i & df$usable
   if (length(unique(df$main[rows])) > 0) {
     print("yes")
   }
 }
#[1] "yes"
#[1] "yes"
#[1] "yes"