我有一个庞大的数据集,唯一标识符是MAC地址。 MAC的格式为00-00-0C-12-43-02。我也有日期作为属性。目前我是 根据日期列拆分数据集。我正在使用的代码如下,这是有效的。
set.seed(100)
Date <- data.frame(unique(Clean_Data[,5]))
dat_len <- length(unique(Clean_Data[,5]))
Date_Split <- as.integer(dat_len*.70)
train_ind <- Clean_Data[,5] <= Date[Date_Split+1,]
test_ind <- !train_ind
training<- Clean_Data[train_ind,]
testing <- Clean_Data[test_ind,]
Clean_Data是我的数据集,第5列是日期列。
现在我的要求是按MAC地址拆分数据集。但它不起作用。 由于它是一个因子值,我无法将因子值与日期值进行比较,如上所述。有没有不同的方法来做到这一点?
答案 0 :(得分:0)
创建data.frame使用
data.frame(data, stringsAsFactors=FALSE)
或将因子更改为字符串(未测试)
Clean_Data[columnNumberOfMAC]=as.character(Clean_Data[columnNumberOfMAC])
然而这两种解决方案都需要更多内存......
如果这是一个问题,您可以在仅进行比较时使用as.character()
投射,而不是更改data.frame
答案 1 :(得分:0)
显然,由于您没有发布数据,我无法对此进行测试,但您可以尝试sample_frac
中的dplyr
:
library(dplyr)
Clean_Data %>%
group_by(date.column, MAC.column) %>%
sample_frac(., 0.7)
将date.column
替换为日期列的名称,将MAC.column
替换为您的MAC地址列。