Fra*_*ank 9 perl grep functional-programming r map
我对(功能)矢量操作感兴趣R
.具体来说,什么是R
的等同Perl的map
和grep
?
以下Perl脚本使用偶数数组元素并将它们乘以2:
@a1=(1..8);
@a2 = map {$_ * 2} grep {$_ % 2 == 0} @a1;
print join(" ", @a2)
# 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做R
?我得到了这个,sapply
用于Perl map
:
> a1 <- c(1:8)
> sapply(a1, function(x){x * 2})
[1] 2 4 6 8 10 12 14 16
Run Code Online (Sandbox Code Playgroud)
我在哪里可以阅读更多关于这种功能阵列操作的内容R
?
此外,有没有一个Perl
对R
语法书,类似于Perl的Python的短语?
R有"grep",但它与你习惯的完全不同.R内置了更好的东西:它能够使用布尔表达式创建数组切片:
a1 <- c(1:8)
a2 <- a1 [a1 %% 2 == 0]
a2
[1] 2 4 6 8
Run Code Online (Sandbox Code Playgroud)
对于map,你可以像上面那样应用一个函数,但只需编写就可以了:
a2 * 2
[1] 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
或者一步到位:
a1[a1 %% 2 == 0] * 2
[1] 4 8 12 16
Run Code Online (Sandbox Code Playgroud)
我从未听说过Perl to R短语书,如果你找到一个让我知道的话!一般来说,R的文档比perl或python少,因为它是一种小众语言.