【发布时间】:2016-02-10 00:18:39
【问题描述】:
我有一个 467,000 x 8000 的数据表。
我想用下划线替换所有冒号和空格。对于 data.table 中的每一行和每一列。
而不是
Assignment 5: Constitutional Law
Assignment_5__Constitutional_Law
我的数据包括日期、数字和字符变量。
library(data.table)
sample<-data.table(STUDENT_ID = c("A1","A2","A3","A4","A5"), Duedate=c("2015-07-29 08:00", "2015-08-05 08:00","2015-08-12 08:00", "2015-08-19 08:00", "2015-08-26 08:00"),Assignment=c(rep("Assignment 1: Physics",5)), GRADE = c(70:74))
sample$Duedate <- as.Date(sample$Duedate,"%Y-%m-%d %H:%M")
【问题讨论】:
-
如果列都是字符或因子变量,请尝试
dt[, lapply(.SD, function(x) gsub("\\s", "_", x))]。如果您添加了与您的数据相似的示例数据表,我们可以更加确定。 -
你试过什么?我假设您应该能够使用
:=在每一列上运行gsub- 类似于DT[, (names(DT)) := lapply(.SD, gsub, pattern="[: ]", replacement="_")]
标签: regex r string data.table