小编Hao*_*Hao的帖子

`if`比ifelse更快?

当我最近重新阅读Hadley的Advanced R时,我注意到他在第6章中说过`if`可以用作一个函数 `if`(i == 1, print("yes"), print("no")) (如果你手头有实体书,那就是第80页)

我们知道这ifelse很慢(ifelse每次都会真正计算它的两个向量吗?它是否很慢?)因为它会评估所有参数.将`if`是一个很好的替代品,if似乎只评估TRUE参数(这只是我的假设)?


更新:基于@Benjamin和@Roman的答案以及@Gregor和其他许多人的评论,ifelse似乎是矢量化计算的更好解决方案.我在这里接受@ Benjamin的回答,因为它提供了更全面的比较和社区健康.但是,这两个答案(以及评论)都值得一读.

performance benchmarking if-statement r

14
推荐指数
2
解决办法
4289
查看次数

如何更改kableExtra上的条带颜色

Kable在Pdf输出上,条带的颜色非常精简.那么有没有办法改变颜色kable_styling(latex_options = "striped")

r r-markdown kableextra

5
推荐指数
1
解决办法
1247
查看次数

在最后一个"."之后删除字符串的最后一部分.在R

想象一下,我们有一个变量名列表,如下所示:

ls<-c("apple.mean", "orange.mean", "orange.sd", "apple.pie.mean", "orange.juice.n", "orange.juice.p%")
Run Code Online (Sandbox Code Playgroud)

我们如何删除每个元素中的最后一部分(在"."之后),以便我们得到:

"apple" "orange" "orange" "apple.pie" "orange.juice" "orange.juice"
Run Code Online (Sandbox Code Playgroud)

请注意,可能有"." 在名称内,但我不希望这些单词被拆分.

我试图使用,gsub("\\..*$", "",ls)但它在第一个点之后省略了所有内容.我不确定为什么$符号在这里不起作用.有任何想法吗?

> gsub("\\..*$", "",ls)
[1] "apple"  "orange" "orange" "apple"  "orange" "orange"
Run Code Online (Sandbox Code Playgroud)

regex r gsub

4
推荐指数
1
解决办法
723
查看次数

在 R 中绘制 ellipse3d 的图?

rgl包含一个非常有用的函数ellipse3d,它可以返回一个覆盖 3D 中 95% 的点的椭球体。然后可以使用该对象来rgl::plot3d绘制它。我的问题是,是否可以将 的输出转换ellipse3d为可以通过 js 绘图包(如plotly)绘制的内容?

library(rgl)
dt <- cbind(x = rnorm(100), y = rnorm(100), z = rnorm(100))
ellipse <- ellipse3d(cov(dt))
plot3d(dt)
plot3d(ellipse, add = T, color = "red", alpha = 0.5)
Run Code Online (Sandbox Code Playgroud)

那么我该怎么做才能通过绘图绘制椭球体呢?

r rgl plotly r-plotly

3
推荐指数
1
解决办法
1804
查看次数

如何使用dplyr按组删除某个点之后的所有行?

我有一个数据框:

test_df <- data.frame(
  x = c(rep("a", 5), rep("b", 5)), 
  y = c(1, 2, NA, 2, 3, NA, 1, 2, 3, 1)
)
Run Code Online (Sandbox Code Playgroud)

我希望通过第x列中的分组信息删除y == 2 之后的所有行.有没有办法做到这一点dplyr

我想要的结果来自:

   x  y
1  a  1
2  a  2
3  a NA
4  a  2
5  a  3
6  b NA
7  b  1
8  b  2
9  b  3
10 b  1
Run Code Online (Sandbox Code Playgroud)

   x  y
1  a  1
2  a  2
6  b NA
7  b  1
8  b …
Run Code Online (Sandbox Code Playgroud)

r dplyr

1
推荐指数
2
解决办法
1543
查看次数

计算每个位置的出现次数

对不起,如果存在此问题.说我有一个矢量

value <- c("A", "A", "B", "C", "D", "A", "A", "B", "C", "D")
Run Code Online (Sandbox Code Playgroud)

我想计算每个位置的每个唯一值的数量,这样我就可以得到一个结果

c(1, 2, 1, 1, 1, 3, 4, 2, 2, 2)
Run Code Online (Sandbox Code Playgroud)

在R中有快速的方法吗?

r

1
推荐指数
1
解决办法
91
查看次数