R 4.1.0著名地引入了(“基管道”)运算|>
符和类似 Haskell 的 lambda 函数语法。
我认为可以将两者结合起来,如下所示:
c(1, 2, 3) |> \(x) 2 * x
Run Code Online (Sandbox Code Playgroud)
这对我来说失败了:
错误:管道的 RHS 调用不支持函数“function”
因此我认为这不是有效的语法?这有效:
c(1, 2, 3) |> (\(x) 2 * x)()
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式来链接管道和新的 lambda 函数?
我想
Dataset<-read.csv(file= "meat.csv", header= TRUE, sep= ";" )
library(ggplot2)
options(scipen=999)
theme_set(theme_bw())
gg <- ggplot(Dataset, aes(x=specie, y=responserate))+
geom_point(aes(col=energetic_level, size=functional_level)) +
geom_smooth(method="loess", se=F) +
labs(subtitle="Bushmeat trade",
y="Response rate",
x="Body mass")
gg+scale_color_gradient(low="green", high="red", space ="Lab" )
plot(gg)
Run Code Online (Sandbox Code Playgroud)
specie responserate energetic_level functional_level
AAOtol_cras 7.2 2.4 low_TL
ABMiop_tal 1.6 3 low_TL
ACCLep_cap 14.4 3 low_TL
BAThry_swin 20 2.8 low_TL
BBPhil_mont 20.8 2.6 low_TL
BCChlor_cyn 72.8 3.2 low_TL
BDCerc_mit 5.6 2.5 low_TL
CCHys_afri 23.2 2.8 low_TL
FCan_mes 1.6 4.9 inter_TL
PTrag_oryx 16 2.7 …
Run Code Online (Sandbox Code Playgroud)a <- 0.6875
estFj <- c(-0.8231686, 0.1237904, 1.1967068, 1.3772572)
#What I tried so far is:
for(i in estFj) {
if (i >= a) {
t = c(i)
}
}
t
Run Code Online (Sandbox Code Playgroud)
但它只给出 1.3772572 的值,而我需要所有estFj
大于或等于 a 的值,然后找到这些大于或等于 a 的值中的最小值!
我该如何解决?