R 中的子集相同观察
Subsetting Identical Observations in R
我正在尝试使用 R 查看蛋白质序列同源性,我想通过数据框寻找相同的位置和字母对。数据看起来类似于下面的框架:
Letter <- c("A", "B", "C", "D", "D", "E", "G", "L")
Position <- c(1, 2, 3, 4, 4, 5, 6, 7)
data.set <- cbind(Position, Letter)
产生:
Position Letter
[1,] "1" "A"
[2,] "2" "B"
[3,] "3" "C"
[4,] "4" "D"
[5,] "4" "D"
[6,] "5" "E"
[7,] "6" "G"
[8,] "7" "L"
我想遍历并找到所有相同的观察结果(在本例中为观察结果 4 和 5),但我很难找到最好的方法。
我希望生成的数据框看起来像:
Position Letter
[1,] "4" "D"
[2,] "4" "D"
我尝试这样做的方法最终产生了这段代码,但不幸的是它 returns 一个 TRUE 值,因为我意识到我正在比较两个相同的数据帧:
> identical(data.set[1:nrow(data.set),1:2], data.set[1:nrow(data.set),1:2])
[1] TRUE
我不确定使用 identical() 函数循环是否是最好的方法?我确定我缺少一个更优雅的解决方案。
感谢您的帮助!
试试unique
函数:
unique(data.set)
...
您可以使用 duplicated
和 fromLast
两个方向:
data.set[(duplicated(data.set)==T | duplicated(data.set, fromLast = TRUE) == T),]
# Position Letter
#[1,] "4" "D"
#[2,] "4" "D"
我正在尝试使用 R 查看蛋白质序列同源性,我想通过数据框寻找相同的位置和字母对。数据看起来类似于下面的框架:
Letter <- c("A", "B", "C", "D", "D", "E", "G", "L")
Position <- c(1, 2, 3, 4, 4, 5, 6, 7)
data.set <- cbind(Position, Letter)
产生:
Position Letter
[1,] "1" "A"
[2,] "2" "B"
[3,] "3" "C"
[4,] "4" "D"
[5,] "4" "D"
[6,] "5" "E"
[7,] "6" "G"
[8,] "7" "L"
我想遍历并找到所有相同的观察结果(在本例中为观察结果 4 和 5),但我很难找到最好的方法。
我希望生成的数据框看起来像:
Position Letter
[1,] "4" "D"
[2,] "4" "D"
我尝试这样做的方法最终产生了这段代码,但不幸的是它 returns 一个 TRUE 值,因为我意识到我正在比较两个相同的数据帧:
> identical(data.set[1:nrow(data.set),1:2], data.set[1:nrow(data.set),1:2])
[1] TRUE
我不确定使用 identical() 函数循环是否是最好的方法?我确定我缺少一个更优雅的解决方案。
感谢您的帮助!
试试unique
函数:
unique(data.set)
...
您可以使用 duplicated
和 fromLast
两个方向:
data.set[(duplicated(data.set)==T | duplicated(data.set, fromLast = TRUE) == T),]
# Position Letter
#[1,] "4" "D"
#[2,] "4" "D"