我正在尝试使用该dplyr::filter()功能来过滤我的小标题的特定行。
这是我的小标题的一部分head(raw.tb):
A tibble: 738 x 4
geno ind X Y
<chr> <chr> <int> <int>
1 san1w16 A1 467 383
2 san1w16 A1 465 378
3 san1w16 A1 464 378
4 san1w16 A1 464 377
5 san1w16 A1 464 376
6 san1w16 A1 464 375
7 san1w16 A1 463 375
8 san1w16 A1 463 374
9 san1w16 A1 463 373
10 san1w16 A1 463 372
# ... with 728 more rows
Run Code Online (Sandbox Code Playgroud)
当我要求: raw.tb %>% dplyr::filter(ind == …
我想让 R 在图像的一部分中检测给定的颜色。
我一直在阅读有关 RGB 方案的信息,但我认为可能会有一个包或一种方法让 R 检测一组像素,例如,黄色发生的地方。
有没有解决方案,或者我只是被困在 RGB 中?
谢谢。
试图排除
tidyr::gather() shiny::selectInput)而不是via 作为我的函数的输入...如何通过整洁的eval功能实现这一目标?
由于我经由单个函数参数传递多个列名,以为需要使用!!!(引文结束剪接)而不是!!如在奠定了与dplyr编程.但这似乎并没有很好地发挥作用,tidyselect::vars_select()而且似乎-造成了麻烦.
这是我想要做的基本事情:
library(magrittr)
gather_data_1 <- function(dat, ...) {
dat %>% tidyr::gather("key", "value", ...)
}
mtcars %>% gather_data_1(-mpg, -cyl) %>% head()
#> mpg cyl key value
#> 1 21.0 6 disp 160
#> 2 21.0 6 disp 160
#> 3 22.8 4 disp 108
#> 4 21.4 6 disp 258
#> 5 18.7 8 disp …Run Code Online (Sandbox Code Playgroud) 请参见以下可重现的示例:
---
title: "test"
output: html_document
---
## foo
```{r}
plot(1:3)
```
## bar
```{r}
plot(4:7)
```
## baz
```{r}
plot(8:12)
```
Run Code Online (Sandbox Code Playgroud)
我希望能够自动创建这些部分,因为在进一步分析之前我不知道它们的数量。
我的输入是:
my_list <- list(foo = 1:3, bar = 4:7, baz = 8:12)
my_fun <- plot
my_depth <- 2
Run Code Online (Sandbox Code Playgroud)
理想的答案(尽管我欢迎任何改进)将帮助我构建一个mdapply函数,以便可以运行:
```{r}
mdapply(X = my_list, FUN = my_fun, title_depth = my_depth)
```
Run Code Online (Sandbox Code Playgroud)
并获得相同的输出。
来自?data.table::data.table:
表达式'.()'是list()的简写别名; 他们俩都是一样的
但是这个功能无处可寻:
data.table:::.
Run Code Online (Sandbox Code Playgroud)
get中的错误(name,envir = asNamespace(pkg),inherits = FALSE):
object'.' 未找到
所以我想输入是以某种方式解析的,它是如何完成的?我想在我自己的包中使用相同的功能.
以下工作也不错:
test <- function(x) {
eval(substitute(
eval.parent(substitute(x, list(.=list)))
))
}
foo <- "bar"
test(.(foo))
# [[1]]
# [1] "bar"
identical(test(.(foo)), list(foo))
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)
但是在这个点函数中会有一些点变量,这会失败:
. <- "baz"
test(.(foo,.))
# [[1]]
# [1] "bar"
#
# [[2]]
# function (...) .Primitive("list")
Run Code Online (Sandbox Code Playgroud)
预期:
# [[1]]
# [1] "bar"
#
# [[2]]
# [1] "baz"
Run Code Online (Sandbox Code Playgroud) 我想列出通话中使用的所有符号或名称。
我发现了以下方法,但是肯定有更惯用或有效的方法吗?
expr <- quote(a + b * (a / b))
expr <- as.list(expr)
while(!identical(expr, (expr <- unlist(lapply(expr,as.list))))){}
unique(expr)
#> [[1]]
#> `+`
#>
#> [[2]]
#> a
#>
#> [[3]]
#> `*`
#>
#> [[4]]
#> b
#>
#> [[5]]
#> `(`
#>
#> [[6]]
#> `/`
Run Code Online (Sandbox Code Playgroud)
由reprex软件包(v0.3.0)创建于2019-08-27
据我所知,:=似乎是通过副本进行分配.运算符=>似乎执行类似的赋值,但在将参数赋值给对象的成员变量时使用.
所以...
receivesTheCopy := isBeingCopied
memberVariable => passedParameter
我正在处理其他人的旧代码,并且我有一个变量达到了一个我从未看到明确分配给它的值:=.我在想,也许当它被赋予memberVariable与=>它被引用传递,从而passedParameter变呆绑在memberVariable状态.
我正在使用 Rattle 包进行一些数据清理,并且我正在考虑数据集中的第一个变量 X。它报告说,当我在第一个选项卡“数据”选项卡中执行操作时,我得到了数据集的一些基本信息,它说变量 X 有 1243 个缺失值。这也是我使用sum(is.na(my_df[,1])).
在下一个选项卡“探索”选项卡上,当我选中“摘要”时,它现在说我在变量 X 中只有 942 个 NA。
我如何理解这些不同的数字?我手动浏览了一下我的数据集并查看了一些具有 NA 的行,这些 NA 看起来都一样(我知道有时有不同类型的 NA)。
(附带问题:sum(is.na(my_df[,1]), na.rm = FALSE)而且sum(is.na(my_df[,1]),na.rm = TRUE)两者都产生相同的数字 1243,为什么?我原以为会有一个给我length(my_df[,1])-1243。)
编辑这是有这个问题的数据集:https : //wetransfer.com/downloads/cf454b2c12857a4e3770102a7222422f20171019153755/516fb0。
其中的数字略有不同,而不是 1243,根据 Rattle() 中的“数据”选项卡(或等效地,根据summary(ten_df)),我们有 88 个 NA,根据选中“摘要”选项卡的“探索”有 62 个 NA。
但是现在我怀疑我的数据集坏了,因为在上传完整的数据集之前,我本来只想上传一个说明性的专栏。但是当我执行
ten_df = read.csv("ten.csv",sep=";")
my_df = as.data.frame(ten_df[,3])
Run Code Online (Sandbox Code Playgroud)
由于我想查看第三列,var2并且my_df是我最初想要上传的内容,因此最后一个命令返回错误
Warning messages:
1: In rep(no, length.out = length(ans)) :
'x' is NULL so the result …Run Code Online (Sandbox Code Playgroud) r ×8
colon-equals ×2
tidyselect ×2
ada ×1
colors ×1
data.table ×1
dataframe ×1
dplyr ×1
function ×1
image ×1
knitr ×1
markdown ×1
missing-data ×1
na ×1
pseudocode ×1
r-markdown ×1
rattle ×1
regex ×1
syntax ×1
tidyeval ×1
tidyr ×1
tidyverse ×1