我有以下数据:
df <- data.frame(id = c("001", "001", "001", "002", "002", "003", "003"),
x = c(0, 0, 0, 0, 1, 0, 1))
id x
001 0
001 0
001 0
002 0
002 1
003 0
003 1
Run Code Online (Sandbox Code Playgroud)
数据的性质使得某些数据可能id只有行x = 0。对于x = 1给定的id,它只出现一次,并且也出现在该 的最后一行id。我想删除每个 的重复行id,但对于x = 1an id,我只想保留该行。
所需的输出:
id x
001 0
002 1
003 1
Run Code Online (Sandbox Code Playgroud)
tidyverse优选解决方案。谢谢!
我想将tibble具有列表列的磁盘保存到磁盘(仅供以后在R中使用)。理想情况下,我想要一种快速的二进制格式,例如feather,但是它似乎不支持list cols:
test <- tibble(a= list(c(1,2), c(3,4)))
feather::write_feather(test, 'test.csv')
Run Code Online (Sandbox Code Playgroud)
writeFeather(x,path)中的错误:未实现:a是一个列表
我期望readr程序包中的方法能够处理此问题,但是我尝试过的方法似乎都无法解决。
我该怎么做呢?
使用tidytext,我有这个代码:
data(stop_words)
tidy_documents <- tidy_documents %>%
anti_join(stop_words)
Run Code Online (Sandbox Code Playgroud)
我希望它使用包中内置的停用词将名为tidy_documents的数据帧写入同名的数据帧中,但如果它们在stop_words中,则删除单词.
我收到此错误:
错误:没有常见变量.请指定by参数.追溯:
1. tidy_documents %>% anti_join(stop_words)
2. withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
3. eval(quote(`_fseq`(`_lhs`)), env, env)
4. eval(expr, envir, enclos)
5. `_fseq`(`_lhs`)
6. freduce(value, `_function_list`)
7. withVisible(function_list[[k]](value))
8. function_list[[k]](value)
9. anti_join(., stop_words)
10. anti_join.tbl_df(., stop_words)
11. common_by(by, x, y)
12. stop("No common variables. Please specify `by` param.", call. = FALSE)
Run Code Online (Sandbox Code Playgroud) Complete noob to R/RStudio/tidyverse.
Using R 3.4.0 "You Stupid Darkness" / RStudio 1.0.136.
Trying to format y axis to display thousands to 1 decimal place.
I'm using :
scale_y_continuous(labels = scales::unit_format("k", 1e-3)) but displays as a whole number. How can I display 1 decimal place so instead of 30k, I get 30.1k?
Thx
我很好奇以下代码是否可以转换为tidyverse代码.我试过dplyr :: mutate并且无法让它工作得很好.
df$Gender[df$Gender == "M"] <- "Man"
df$Gender[df$Gender == "Male"] <- "Man"
df$Gender[df$Gender == "F"] <- "Woman"
df$Gender[df$Gender == "Female"] <- "Woman"
df$Gender[df$Gender == "M & F"] <- "Man and Woman"
df$Gender[df$Gender == "Male & Female"] <- "Man and Woman"
Run Code Online (Sandbox Code Playgroud) 我得到了如下的小标题结果
> df
# A tibble: 6 x 5
terms results R.squared minP maxP
<dbl> <list> <dbl> <dbl> <dbl>
1 11 <tibble [6 x 9]> 0.589 0.269 0.939
2 10 <tibble [49 x 9]> 0.589 0.181 0.999
3 9 <tibble [200 x 9]> 0.589 0.0655 1.000
4 8 <tibble [527 x 9]> 0.585 0.000154 0.997
5 7 <tibble [972 x 9]> 0.565 0.0000607 0.998
6 6 <tibble [1,273 x 9]> 0.542 0.000000977 0.998
Run Code Online (Sandbox Code Playgroud)
在中保存了一些建模信息<list> tibble results,其中包含几列名称,例如“公式”,“ maxp”,“ R.squared”等。 …
是否有一种有效的编程方法来解决以下任务?
想象一下以下向量:
A<-[a,b,c...k]
Run Code Online (Sandbox Code Playgroud)
并希望通过以下方式传播它:让我们从例如n = 2开始
B<-[a,a,b,b,c...,k,k]
Run Code Online (Sandbox Code Playgroud)
现在n = 4或任何数字大于1
C<-[a,a,a,a,b,...,k,k,k,k]
Run Code Online (Sandbox Code Playgroud)
通过循环来解决这个问题看起来很简单,但是我错过/可以使用任何基于函数或矢量的操作吗?Tidyverse解决方案(在管道中使用它)对我来说是最好的解决方案.
(很难对这项任务进行研究,因为我是R中的新手并且没有正确的搜索条件.任何帮助都会有所帮助.)
我有以下数据框:
df <- structure(list(sqn = c("FOO", "BAR"), start = c(1, 99), end = c(531,
1), strand = c("+", "-")), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
看起来像:
# A tibble: 2 x 4
sqn start end strand
<chr> <dbl> <dbl> <chr>
1 FOO 1 531 +
2 BAR 99 1 -
Run Code Online (Sandbox Code Playgroud)
我想做的是交换if start和endcolumn中的值strand == "-"。期望的结果是这样的:
# A tibble: 2 x 4
sqn start end strand
<chr> <dbl> <dbl> <chr>
1 FOO 1 531 …Run Code Online (Sandbox Code Playgroud) 我在新data.table
如何让同样的事情data.table用rlang?
library(tidyverse)
library(data.table)
gr <- "Species"
col <- "Petal.Length"
iris %>%
group_by(!!rlang::sym(gr)) %>%
summarise_at(vars(!!rlang::sym(col)),sum)
iris1 <- iris
setDT(iris1)
iris1[,sum(!!rlang::sym(col)),by=!!rlang::sym(gr)]
Run Code Online (Sandbox Code Playgroud) 假设我有一个看起来像这样的数据框:
gene drug log2FC
Ubb Naloxone 0.6375514
Tuba1a Naloxone 0.5827224
Scd1 Naloxone -0.7249997
Ubb Aspirin 0.8000
Tuba1a Aspirin 0.73324
Scd1 Aspirin 0.2497
Ubb Haldol 0.0375
Tuba1a Haldol 0.25824
Scd1 Haldol -0.0249997
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以为每种独特的药物创建列,所以我留下了这样的内容:
gene Naloxone_log2FC Asirin_Log2FC Haldol_log2FC
Ubb 0.6375514 0.73324 0.0375
Tuba1a ...
Scd1 ...
Thanks!
Run Code Online (Sandbox Code Playgroud)