目标是将有时包含缺失记录的嵌套列表转换为数据框.缺少记录时的结构示例如下:
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 连接两个向量时c(),它“组合参数并产生向量”。它是否通过创建一个新向量来获取两个向量的元素来组合它们,或者是否有一种方法可以按字面意思组合为两个向量分配的数据空间?
当我搜索时,我找不到解释。所有的视觉表示c()实际上只是将第二个向量附加到第一个向量的末尾,但我认为这只是为了让我们可以轻松地理解这个函数的作用,而不是实际发生的情况。
我正在寻找一种有效的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) 我有一些复杂的代码,但是我没有向您展示这一点,而是要提取问题的实质。
评估:"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")?
这是一个简单的例子。
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'
为什么大象形状不起作用?我怎样才能让大象的形状出现在我的情节中?
我想使用 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 代码。
如果我使用 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) 如何根据另一列中的行在一列中应用两个(或更多)替换案例?例如,给出下一个数据帧
\ndata <- 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))\nRun Code Online (Sandbox Code Playgroud)\n我想申请2个条件:
\n我想为此使用“replace”函数和“case_when”,但我没有找到解决方案。然后我使用了“mutate”选项,但它替换了我想不被 NA 影响的值。\n(我想使用 case_when 或类似的方法来优化我的脚本,这里我只是提供一个示例,但我可能需要替换许多情况下,我不想在我的管道中多次使用“替换”功能:))
\n我用了下一个:
\ndata %>%\n mutate(x2 = case_when(x1 %in% 1 ~ \xe2\x80\x9cYES\xe2\x80\x9d,\n x1 %in% 2 ~ \xe2\x80\x9cNO\xe2\x80\x9d))\nRun Code Online (Sandbox Code Playgroud)\n我得到了什么:
\n\n我该如何解决这个问题?先感谢您
\nS …
我有下图,我想突出显示两个西瓜的列,因为它的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)
使用 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 ×10
ggplot2 ×2
knitr ×2
r-markdown ×2
ascii ×1
case ×1
dataframe ×1
dplyr ×1
firefox ×1
matching ×1
nested-lists ×1
optimization ×1
performance ×1
rbind ×1
replace ×1
search ×1
unicode ×1
xaringan ×1