R Dataframe比较哪个,缩放不好

时间:2015-03-31 10:51:00

标签: r dplyr

这个想法是通过引用其他df来提取df字符的位置,例如:

L<-LETTERS[1:25]
A<-c(1:25)
df<-data.frame(L,A)
Compare<-c(LETTERS[sample(1:25, 25)])
df[] <- lapply(df, as.character)
for (i in 1:nrow(df)){
  df[i,1]<-which(df[i,1]==Compare)
}
head(df)

   L A
1 14 1
2 12 2
3  2 3

这样做效果很好但是规模非常糟糕,就像所有的想法一样,还是应用dplyr?

由于

1 个答案:

答案 0 :(得分:2)

只需使用match

即可

您的数据(使用set.seed提供数据时使用sample

df <- data.frame(L = LETTERS[1:25], A = 1:25)
set.seed(1)
Compare <- LETTERS[sample(1:25, 25)]

<强>解决方案

df$L <- match(df$L, Compare)
head(df)
#    L A
# 1 10 1
# 2 23 2
# 3 12 3
# 4 11 4
# 5  5 5
# 6 21 6