【发布时间】:2017-08-10 11:40:34
【问题描述】:
例如,假设您要计算 80 个残基肽段中的所有相同残基,当残基出现在另一个肽段的相同位置时,就会发生匹配。但问题是级别的数量可能不一样,因为一些代表肽的字母 [A - Z] 将出现在一个肽中,但不会出现在下一个肽中。为简单起见,假设我们正在所有三个肽段中寻找完全相同的残基(字母在这些相同位置匹配),因此答案是 BOOLEAN TRUE 或 FALSE 语句,其中 TRUE 是如果它们都匹配,FALSE 是如果它们不符合。同样的问题是因素的数量不一样,所以你不能测试peptide_x ==peptide_y。
编码:
> peptide_x <- as.factor(sample(LETTERS[1:26], replace = TRUE, 80))
> peptide_y <- as.factor(sample(LETTERS[1:26], replace = TRUE, 80))
> peptide_z <- as.factor(sample(LETTERS[1:26], replace = TRUE, 80))
您可以使用以下命令检查肽中缺少 26 个残基的字母表中的哪些字母:
> setdiff(LETTERS[1:26], peptide_x)
[1]“是”
所以我们看到“Y”(酪氨酸)缺失。当您创建随机肽段时,您可能会遗漏一两个字母,您可以对任何肽段执行此操作。
如果我尝试比较具有相同水平的因素,那么这是可行的:
> x <- c("M", "N", "A", "Q", "C")
> y <- c("N", "M", "A", "C", "Q")
> xy_frame <- data.frame(x,y)
> xy_frame
> x == y
[1] FALSE FALSE TRUE FALSE FALSE 如您所见,A 匹配,所以第三个元素“A”是唯一的事实。
令人震惊的是,这个测试有效:
> x <- c("A", "A", "B", "Q", "C")
> y <- c("A", "Q", "C", "D", "R")
> x == y
[1] TRUE FALSE FALSE FALSE FALSE
即使因素的数量不一样。所以我想知道我的数据类型是否有问题,这就是我无法测试的原因:
> peptides <- data.frame(peptide_x, peptide_y)
> peptides$peptide_x == peptides$peptide_y
Ops.factor(peptides$peptide_x,peptides$peptide_y) 中的错误: 水平组的因素是不同的
那么,如果这是问题所在,我该如何修复我的数据类型,或者我是否正在运行正确的测试?
我只想计算 TRUE - FALSE 来表示不同的因子水平。
评论:
%in% 是否无法正常工作,因为...
头部(肽_x) [1] "C" "T" "X" "Z" "M" "A"
头部(肽_y) [1] “R” “G” “T” “U” “G” “U”
头(肽_x %in% 肽_y) [1] 对对对对对对对对对对对对对对
例如,每个肽段的前 6 个字母不匹配,但它显示的是 TRUE!如何?
【问题讨论】:
标签: r