按向量重塑数据框

Reshape data frame by vector

假设一个名为 textstat_frequency{package:quanteda} 的函数 给我们以下数据框。

data.frame(xx=1:4,yy=5:8,foo=c("A","A","B","C"),stringsAsFactors=FALSE)
  xx  yy  foo
1  1  5   A
2  2  6   A
3  3  7   B
4  4  8   C

根据矢量塑造 data.frame 的最佳方法是什么 c("B","A","C")。我用 match%in% 创建了一个索引,但没有任何运气。

df = data.frame(xx=1:4,yy=5:8,foo=c("A","A","B","C"),stringsAsFactors=FALSE)
temp = factor(df$foo, levels = c("B", "A", "C"))
df = df[order(temp),]
df
#  xx yy foo
#3  3  7   B
#1  1  5   A
#2  2  6   A
#4  4  8   C