[英]if and else with vector sum condition not properly working
我有一個名為data.frame
的sites_sp
,我試圖在其中運行一些基於if
和else
語句的函數。 sites_sp
具有以下結構:
structure(list(x = c(-50.1298257841559, -49.9523708108406, -49.8600298829818,
-49.8590735594872, -49.8600022102151, -49.680556540172), y = c(-29.2498490060132,
-29.1594734717135, -29.0700140387022, -28.9795033961473, -28.8900003372153,
-28.8945716273705), ua = c("ua_1", "ua_4", "ua_10", "ua_15",
"ua_21", "ua_23"), occ = c(0, 0, 0, 0, 0, 0), PC1 = c(0.403336553595704,
-0.209623013249306, -2.38969068562858, -1.0875631345167, 0.0424075103800285,
-1.69180948954307), PC2 = c(-3.62346919232857, -4.03856503375702,
-1.46862258765078, -1.77908267718137, -2.0250031837701, -0.952927464794925
), PC3 = c(-0.375601733371977, -0.122982261539736, -0.365818414058142,
-0.111150398019996, 0.287459840686463, 0.034973266100254), PC4 = c(-1.31153262462204,
-0.899941801783298, -1.35652371929479, -1.98693913441246, -1.75393016363327,
-0.788097574287776), PC5 = c(1.42830395246321, 1.55155187773266,
1.33933059031444, 0.0760013457702872, 0.588191290690648, -0.408003273953271
)), row.names = c(NA, 6L), class = "data.frame")
我正在做的是一個if
和else
形式的陳述:
for(s in sp){
if(sum(sites_sp$occ >= 30)){
pa_data <- st_as_sf(sites_sp,
coords = c("x", "y"),
crs = crs(env_terra))
...
} else {
block of functions for the statement being FALSE
}
}
相關編輯:據我所知,function 將直接進入else
塊,即使它不應該 - 因為sum(sites_sp$occ)
對於s in sp
大於 30
我真的不明白發生了什么。 如果我嘗試sum(sites_sp$occ)
它為我返回一個值 37,這意味着if
塊( pa_data <- st_as_sf()...
)內的 function 應該正常運行。 我在這里做錯了什么? 如果需要更多信息,請告訴我。
好吧,伙計們……我有點笨。
問題就在這里:
if(sum(sites_sp$occ >= 30)){
應該寫成
if(sum(sites_sp$occ) >= 30){
我的條件在sum
內
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.