以下是我的 R 脚本的一部分:
for (i in 1:N-1) {
if (-50<nw.bank[i] && 50>nw.bank[i]) {
rl[i+1] <- (rl[i]+0.001)
}
else {
rl[i+1] <- rl[i]
}
}
Run Code Online (Sandbox Code Playgroud)
运行时,我收到以下消息:
"Error in if (-50 < nw.bank[i] && 50 > nw.bank[i]) { :
missing value where TRUE/FALSE needed"
Run Code Online (Sandbox Code Playgroud)
谁能帮我吗?非常感谢!
最好的,炫
我试图在表中找到一个匹配两个列值的行.我知道我可以使用哪个功能:
my_data[which(my_data$col1 == "val"),]
Run Code Online (Sandbox Code Playgroud)
但是,如何为2个或更多值执行此操作?我已经尝试过任何顺序的&&运算符,仍然无济于事.
&& 布尔运算符似乎与字符向量的工作方式不同,我想知道是否有人知道原因。
例如:
streetA <- c("green", "green", "red")
streetB <- c("green", "green", "green")
Run Code Online (Sandbox Code Playgroud)
streetA == "green" && streetB == "green"
返回 TRUE,但该语句应返回 FALSE,因为 streetA 中包含“红色”。
& 语句按预期工作:
streetA == "green" & streetB == "green"
返回: TRUE TRUE FALSE
有人知道为什么吗?
我有下表:
> head(datalist[[5]])
X5CO X5CS X5CD X5CSD
1 24.87769 24.31233 26.84647 34.3316
2 24.74026 24.31233 26.84647 34.3316
3 24.45217 24.31233 26.84647 34.3316
10 24.87769 24.31233 26.15139 34.3316
11 24.74026 24.31233 26.15139 34.3316
12 24.45217 24.31233 26.15139 34.3316
Run Code Online (Sandbox Code Playgroud)
我需要使用每一行作为变量值来应用以下表达式.所以我正在使用with()函数.这适用于2嵌套ifelse,但是当我添加第三个ifelse()时它不再起作用.自己看:
> with( head(datalist[[5]]),{
+ cCO=get(paste("X", 5,"CO",sep=""))
+ cCS=get(paste("X", 5,"CS",sep=""))
+ cCD=get(paste("X", 5,"CD",sep=""))
+ cCSD=get(paste("X", 5,"CSD",sep=""))
+ ifelse( (cCS-cCO) > 0, 1, #1st consequent
+ ifelse ( (cCD-cCO) > 0, 2, # 2nd
+ 5) ) } ) # default
[1] 2 2 …Run Code Online (Sandbox Code Playgroud) 我知道"||" 在大多数编程语言中表示"或",包括R.但有时候我会看到人们使用"|".而且我不完全确定这意味着什么.它与"||"有什么不同 ?
谢谢