在 R 中应用函数来比较列
apply functions in R for comparing columns
我有一个名为 df
的数据框。我想检查每个文档的 x 坐标 和 y 坐标是否相同。
doc <- c("doc1", "doc2", "doc3")
xcor <- c(3,4,5,3,4,5,3,4,4)
ycor <- c(2,6,8,2,6,8,2,6,8)
df <- data.frame(doc,xcor,ycor)
df
doc xcor ycor
doc1 3 2
doc2 4 6
doc3 5 8
doc1 3 2
doc2 4 6
doc3 5 8
doc1 3 2
doc2 4 6
doc3 4 8
我现在正在努力使用所有的应用函数,但这并没有得到想要的结果。
这是
doc1 TRUE
doc2 TRUE
doc3 FALSE
我认为您不需要 apply
函数。我们可以统计剔除重复行后的重复文档数:
table(df[!duplicated(df),]$doc) == 1
doc1 doc2 doc3
TRUE TRUE FALSE
甚至更短(@DavidArenburg):
table(unique(df)$doc) == 1
好吧,你仍然可以用 lapply
:
unlist(lapply(lapply(lapply(split(df, doc), unique), nrow), `==`, 1))
看起来有点乱,但确实有效。
我有一个名为 df
的数据框。我想检查每个文档的 x 坐标 和 y 坐标是否相同。
doc <- c("doc1", "doc2", "doc3")
xcor <- c(3,4,5,3,4,5,3,4,4)
ycor <- c(2,6,8,2,6,8,2,6,8)
df <- data.frame(doc,xcor,ycor)
df
doc xcor ycor
doc1 3 2
doc2 4 6
doc3 5 8
doc1 3 2
doc2 4 6
doc3 5 8
doc1 3 2
doc2 4 6
doc3 4 8
我现在正在努力使用所有的应用函数,但这并没有得到想要的结果。
这是
doc1 TRUE
doc2 TRUE
doc3 FALSE
我认为您不需要 apply
函数。我们可以统计剔除重复行后的重复文档数:
table(df[!duplicated(df),]$doc) == 1
doc1 doc2 doc3
TRUE TRUE FALSE
甚至更短(@DavidArenburg):
table(unique(df)$doc) == 1
好吧,你仍然可以用 lapply
:
unlist(lapply(lapply(lapply(split(df, doc), unique), nrow), `==`, 1))
看起来有点乱,但确实有效。