Har*_*pta 2 r matrix apply dataframe
我有一个像这样的矩阵
df <- matrix(c(rep(1,3),rep(2,3)),nrow=3,ncol=2)
df:
[,1] [,2]
[1,] 1 2
[2,] 1 2
[3,] 1 2
Run Code Online (Sandbox Code Playgroud)
我想将每个单元格值转换为YES大于0,否则NO
我明白我可以这样做
apply(df, 2, function(x) ifelse(x > 0, "Yes","No"))
Run Code Online (Sandbox Code Playgroud)
然而,我的矩阵是非常巨大的(百万*5000),因此使用应用需要非常大的时间
我也试过了
df <- ifelse(df > 0, "Yes","No")
Run Code Online (Sandbox Code Playgroud)
然而,即使这需要很多时间
我能用这个获得更好的表现吗?
这是创建矩阵的一种方法:
df[] <- c("No", "Yes")[(df > 0) + 1]
Run Code Online (Sandbox Code Playgroud)
结果:
[,1] [,2]
[1,] "Yes" "Yes"
[2,] "Yes" "Yes"
[3,] "Yes" "Yes"
Run Code Online (Sandbox Code Playgroud)