2つのdata.frameオブジェクト「x」と「ans1」があります。「x」には500列、「ans1」には7列あります。「x」の列の名前を見つけるにはどうすればよいですか。「ans1」の列と同じです。 ?
質問する
1137 次
3 に答える
2
パッケージで使用identical()
することが可能です:digest
library(digest)
x <- data.frame(aa = c("s", "d", "f"), bb = 1:3)
ans1 <- data.frame(bb = c("d", "s", "z"), cc = 1:3)
(myMatches<-lapply(x, function(myX) sapply(ans1,
function(y) identical(digest(y), digest(myX))))
)
# $aa
# bb cc
# FALSE FALSE
# $bb
# bb cc
# FALSE TRUE
これはbb
、data.frameの列のデータがdata.frameのx
列のデータと等しいことを示しています。cc
ans1
一致のみを取得するには、
unlist(lapply(myMatches, function(x) which(x)))
# bb.cc
# 2
繰り返しますが、bb
fromの列のデータは、の列のx
データと同じです。cc
ans1
于 2012-04-11T13:15:03.693 に答える
1
と%in%
:
names(x) %in% names(ans1)
詳細については、を参照してください?match
。
于 2012-04-11T12:52:17.797 に答える
1
これはどう:
mtcarsSub <- mtcars[c(1,4,7)]
names(mtcarsSub) <- letters[1:3]
matches <- sapply(mtcarsSub,function(x) sapply(mtcars,identical,x))
matches
a b c
mpg TRUE FALSE FALSE
cyl FALSE FALSE FALSE
disp FALSE FALSE FALSE
hp FALSE TRUE FALSE
drat FALSE FALSE FALSE
wt FALSE FALSE FALSE
qsec FALSE FALSE TRUE
vs FALSE FALSE FALSE
am FALSE FALSE FALSE
gear FALSE FALSE FALSE
carb FALSE FALSE FALSE
names(mtcars)[apply(matches,2,which)]
[1] "mpg" "hp" "qsec"
于 2012-04-11T13:16:55.563 に答える