【发布时间】:2012-08-21 18:28:14
【问题描述】:
这里是示例数据。
df1 <- data.frame(y = 1:5, x = c("s", "m", "l", "s", "m"))
df2 <- data.frame(y = 1:4, x = c("s", "l", "s", "l"))
我希望 df2 基于 df1$x 具有三个级别。
我试过了
df2$x <- factor(df1$x)
那我有
Error in `$<-.data.frame`(`*tmp*`, "x", value = c(3L, 2L, 1L, 3L, 2L)) :
replacement has 5 rows, data has 4
或
levels(df2$x) <- factor(df1$x)
然后它会改变 df2。
df2
y x
1 1 m
2 2 s
3 3 m
4 4 s
我该怎么做?
【问题讨论】:
-
第一个给出了这个错误。
Error in$(*tmp*, "x", value = c(3L, 2L, 1L, 3L, 2L)) : replacement has 5 rows, data has 4.第二个更改了标签。
标签: r dataframe levels factors