【发布时间】:2015-02-07 21:42:03
【问题描述】:
我正在使用 dplyr 将一些数据简单地拆分为训练和测试。
当我做一个简单的例子时,效果很好:
a = c(1, 2, 3, 4, 5, 6, 7, 8)
b = c("A", "B", "C", "D", "E", "F", "G", "H")
df = data.frame(a, b)
train = sample_frac(df, 0.8)
test = setdiff(df, train)
> nrow(train) + nrow(test) == nrow(df)
[1] TRUE
但是,当我尝试使用经典的 UCI Wine 数据集做同样的事情时,我似乎没有得到相同的结果:
wine = read.csv("http://www.nd.edu/~mclark19/learn/data/goodwine.csv")
wine_train = sample_frac(wine, 0.8)
wine_test = setdiff(wine, wine_train)
> nrow(wine_train) + nrow(wine_test) == nrow(wine)
[1] FALSE
> nrow(wine_train) + nrow(wine_test)
[1] 6105
> nrow(wine)
[1] 6497
我缺少关于 setdiff 的行为吗?
谢谢, AG
【问题讨论】:
-
偷偷摸摸的错误跟踪,我同意!
标签: r