小编Ste*_*ven的帖子

tidyr ::跨列模式联合

我有一个看起来像这样的数据集

site <- c("A", "B", "C", "D", "E")
D01_1 <- c(1, 0, 0, 0, 1)
D01_2 <- c(1, 1, 0, 1, 1)
D02_1 <- c(1, 0, 1, 0, 1)
D02_2 <- c(0, 1, 0, 0, 1)
D03_1 <- c(1, 1, 0, 0, 0)
D03_2 <- c(0, 1, 0, 0, 1)
df <- data.frame(site, D01_1, D01_2, D02_1, D02_2, D03_1, D03_2)
Run Code Online (Sandbox Code Playgroud)

我试图统一D0x_1D0x_2列,以便列中的值用斜杠分隔.我可以使用以下代码执行此操作,它可以正常工作:

library(dplyr)
library(tidyr)

df.unite <- df %>%
  unite(D01, D01_1, D01_2, sep = "/", remove = TRUE) %>% …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr

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

提取数据集中的第一个和最后一个位置

我有这个数据集,我正在尝试转换,以获得通过测试的特定数据点组中的"从"和"到"位置.

以下是数据的外观:

pos <- seq(from = 10, to = 100, by = 10)
test <- c(1, 1, 1, 0, 0, 0, 1, 1, 1, 0)
df <- data.frame(pos, test)
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到位置10,20和30以及70,80和90通过测试(b/c测试= 1),但其余点不通过.我正在寻找的答案是一个数据框,看起来像下面代码中的"答案"数据框:

peaknum <- c(1, 2)
from <- c(10, 70)
to <- c(30, 90)
answer <- data.frame(peaknum, from, to)
Run Code Online (Sandbox Code Playgroud)

有关如何转换数据集的任何建议?我很难过.

谢谢,史蒂夫

r dplyr

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

在R中使用grepl搜索字段

我试图用grepl标记一些我可能在遗传学数据集中有趣的数据.

数据的示例如下所示

test <- c("AAT,TAA,TGA,A,G", "A,AAT,AAAT,AATAAT", "CA,CAA,CAAA")
pattern <- c("TAA", "G", "CAA")
df <- data.frame(test, pattern)
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建第三列,比如result评估列中的值是否patterntest列中.

我试过这个:

df.result <- df %>% mutate(result = grepl(pattern, test))
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,我TRUE, TRUE, FALSEresult专栏中得到了一个,这不是我所期待的 - 我希望得到一个TRUE, FALSE, TRUE结果.

我已经玩过一些东西,比如在每个字段的末尾添加一个逗号,但这似乎也没有用.

非常感谢任何帮助!

谢谢,史蒂夫

r

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

标签 统计

r ×3

dplyr ×2

tidyr ×1