小编H 1*_*H 1的帖子

将嵌套列表转换为数据帧

目标是将有时包含缺失记录的嵌套列表转换为数据框.缺少记录时的结构示例如下:

str(mylist)

List of 3
 $ :List of 7
  ..$ Hit    : chr "True"
  ..$ Project: chr "Blue"
  ..$ Year   : chr "2011"
  ..$ Rating : chr "4"
  ..$ Launch : chr "26 Jan 2012"
  ..$ ID     : chr "19"
  ..$ Dept   : chr "1, 2, 4"
 $ :List of 2
  ..$ Hit  : chr "False"
  ..$ Error: chr "Record not found"
 $ :List of 7
  ..$ Hit    : chr "True"
  ..$ Project: chr "Green"
  ..$ Year   : chr "2004" …
Run Code Online (Sandbox Code Playgroud)

r nested-lists dataframe rbind

21
推荐指数
4
解决办法
3万
查看次数

当 R 使用 c() 组合两个向量时会发生什么?

当您使用 R 连接两个向量时c(),它“组合参数并产生向量”。它是否通过创建一个新向量来获取两个向量的元素来组合它们,或者是否有一种方法可以按字面意思组合为两个向量分配的数据空间?

当我搜索时,我找不到解释。所有的视觉表示c()实际上只是将第二个向量附加到第一个向量的末尾,但我认为这只是为了让我们可以轻松地理解这个函数的作用,而不是实际发生的情况。

r

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

有效匹配另一个向量中一个向量的所有值

我正在寻找一种有效的x方法来匹配向量中向量的所有值,y而不仅仅是第一个位置,如match(). 我本质上追求的是默认行为pmatch(),但没有部分匹配:

x <- c(3L, 1L, 2L, 3L, 3L, 2L)
y <- c(3L, 3L, 3L, 3L, 1L, 3L)
Run Code Online (Sandbox Code Playgroud)

预期输出:

pmatch(x, y)  
[1]  1  5 NA  2  3 NA
Run Code Online (Sandbox Code Playgroud)

一种方法是使用ave(),但是随着组数量的增加,这会变得很慢并且内存效率很低:

ave(x, x, FUN = \(v) which(y == v[1])[1:length(v)])
[1]  1  5 NA  2  3 NA
Run Code Online (Sandbox Code Playgroud)

任何人都可以推荐一种有效的方法来在优选(但不是强制)的基础 R 中实现这一目标吗?

用于基准测试的更大数据集:

set.seed(5)
x <- sample(5e3, 1e5, replace = TRUE)
y <- sample(x, replace = TRUE)
Run Code Online (Sandbox Code Playgroud)

optimization performance search r matching

16
推荐指数
3
解决办法
1462
查看次数

为什么R 3.6.0在计算表达式(“ Dogs” &lt;“ cats”)时返回FALSE?

我有一些复杂的代码,但是我没有向您展示这一点,而是要提取问题的实质。

评估:"dogs" < "cats"…应评估为FALSER 3.6。

评估:"Dogs" < "cats"…这应该评估为,TRUE因为“ D”的ASCII码为68,而“ c”的ASCII码为99。由于68 <99,因此"Dogs" < "cats"应评估为TRUE,但在R 3.6.0中不这样。然而,当我尝试使用上的控制台窗口https://datacamp.com网站,表达"Dogs" < "cats"返回TRUE和表达式"dogs" < "Cats"返回FALSE-如预期。

因此,我的问题是,为什么R 3.6.0返回FALSE"Dogs" < "cats")?

ascii r case

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

ggplot:一些 Unicode 形状可以工作,而另一些则不能

这是一个简单的例子。

library(tidyverse)

dat <- data.frame(x = c(1,2,3,4,5),
  y = c(1,2,3,4,5))

ggplot(dat, aes(x, y)) +
  geom_point(shape="\u2620", size = 8)
Run Code Online (Sandbox Code Playgroud)

这非常适合创建骷髅和交叉骨作为形状,因为2620 是此 unicode 字符的十六进制值。我实际上想要大象形状,它的十六进制代码为 1F418

但是,将 1F418 替换为 2620 会产生错误消息

错误:找不到形状名称:* '8'

为什么大象形状不起作用?我怎样才能让大象的形状出现在我的情节中?

unicode r ggplot2

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

使用 R 在 Firefox 中创建当前打开的 URL 的向量

我想使用 R 来提取当前在 Web 浏览器中打开的所有 URL。考虑以下示例:

如何从 R 中提取这两个 URL,以获得以下输出?

my_urls <- c("https://www.google.de/", "https://www.amazon.com/")
my_urls
### [1] "https://www.google.de/"  "https://www.amazon.com/"
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我怀疑这可能与RSelenium 包有关,但不幸的是我无法找出合适的 R 代码。

firefox r

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

我可以在 Rmarkdown / xaringan 中打印小标题吗,这样它们看起来就像 RStudio 控制台

如果我使用 RStudio IDE 中的控制台打印小标题,NA 值将显示为红色。当我在 xaringan 幻灯片上打印表格时,表格为黑白,并且 NA_character_ 值显示为<NA>。有没有办法让 xaringan 幻灯片上的输出看起来像控制台输出(不使用屏幕截图)?

这是一个例子:

---
title: "x"
output:
  xaringan::moon_reader
---


```{r}
library(tibble)
example <- tribble(
  ~name, ~age,
  "Fran", 2,
  "Bob", NA,
  NA, NA
)
example
```
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown xaringan

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

dplyr 根据行条件替换列中的特定情况,保持其他情况不变

如何根据另一列中的行在一列中应用两个(或更多)替换案例?例如,给出下一个数据帧

\n
data <- data.frame(x1 = c(1, 2, 3, 2, 4, 1, 2, 3, 4, 2),  \n                     x2 = c(4, 36, 45, 22, 36, 1, 11, 12, 31, 22))\n
Run Code Online (Sandbox Code Playgroud)\n

我想申请2个条件:

\n
    \n
  • 如果 X1 = 1 则将 X2 中相应的值替换为 YES
  • \n
  • 如果X1 = 2则将X2中对应的值替换为NO
  • \n
  • 保持其他所有值不变,保留 X2 中的原始值
  • \n
\n

我想为此使用“replace”函数和“case_when”,但我没有找到解决方案。然后我使用了“mutate”选项,但它替换了我想不被 NA 影响的值。\n(我想使用 case_when 或类似的方法来优化我的脚本,这里我只是提供一个示例,但我可能需要替换许多情况下,我不想在我的管道中多次使用“替换”功能:))

\n

我用了下一个:

\n
data %>%\n  mutate(x2 = case_when(x1 %in% 1 ~   \xe2\x80\x9cYES\xe2\x80\x9d,\n                        x1 %in% 2 ~   \xe2\x80\x9cNO\xe2\x80\x9d))\n
Run Code Online (Sandbox Code Playgroud)\n

我得到了什么:

\n

在此输入图像描述

\n

我该如何解决这个问题?先感谢您

\n

S …

replace r dplyr

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

如何突出显示ggplot2中的列

我有下图,我想突出显示两个西瓜的列,因为它的juice_content和重量最高。我知道如何更改列的颜色,但我想突出显示整个列。关于如何实现这一点的任何想法?网上似乎没有任何类似的内容。

fruits <- c("apple","orange","watermelons")
juice_content <- c(10,1,1000)
weight <- c(5,2,2000)
df <- data.frame(fruits,juice_content,weight)
df <- gather(df,compare,measure,juice_content:weight, factor_key=TRUE)
plot <- ggplot(df, aes(fruits,measure, fill=compare)) + geom_bar(stat="identity", position=position_dodge()) + scale_y_log10()
Run Code Online (Sandbox Code Playgroud)

我要强调整个西瓜专栏。

r ggplot2

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

如何从代码块内部渲染 markdown?

使用 knit 在 R markdown 中实现此伪代码的正确方法是什么?假设这些是文件 test.rmd 的内容

---
title: "Test"
output: html_document
---    

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```    

## R Markdown Loop example    

```{r cars}
for(i in 1:nrow(cars)){
    ### Car {i}
    Car {i} has a speed of {cars$speed[i]} miles per hour and a stopping distance of {cars$dist[i]} feet. 
}
```
Run Code Online (Sandbox Code Playgroud)

显然这不会运行,因为我的代码块不是有效的 R。但目标是让这个 for 循环产生类似于以下 markdown 的结果,它像平常一样编译为 pdf 或 html:

## R Markdown Loop example

### Car 1
Car 1 has a speed of 4 miles per hour …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

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