删除 R 中的换行符“\n”
Remove line breaks "\n" in R
我一直在尝试从 R 中的数据集中删除换行符。所有列都是因子,因此在我可以用 "NA" 替换“\n”之前,我需要更改数据类型从因素到字符或日期。我提到我的代码和示例数据集以便更好地理解:
sku Stockout_start Stockout_End create_date
0BX-164463 \N 1/29/2015 11:35 1/29/2015 11:35
0BX-164463 2/11/2015 18:01 \N 2/11/2015 18:01
0BX-164464 \N 1/29/2015 11:38 1/29/2015 11:38
0BX-164464 1/30/2015 4:38 \N 1/30/2015 4:38
0BX-164481 \N 1/28/2015 9:58 1/28/2015 9:58
0BX-164482 \N 1/29/2015 11:37 1/29/2015 11:37
0BX-164482 2/4/2015 7:17 \N 2/4/2015 7:17
0BX-164483 \N 1/29/2015 11:37 1/29/2015 11:37
0BX-164483 2/7/2015 4:37 \N 2/7/2015 4:37
0BX-164496 \N 1/29/2015 9:45 1/29/2015 9:45
0BX-164497 \N 1/28/2015 10:02 1/28/2015 10:02
0BX-164498 \N 1/29/2015 9:45 1/29/2015 9:45
0BX-164499 \N 1/29/2015 11:36 1/29/2015 11:36
0BX-164500 \N 1/29/2015 11:36 1/29/2015 11:36
0BX-164501 \N 1/29/2015 11:36 1/29/2015 11:36
我一直在使用下面提到的代码来更正数据:
stk[,2]<- as.Date(as.character(stk[,2]),format = "%y-%m-%d %H:%M:%S")
stk[,2]<- as.character(as.Date(stk[,2], origin = "1970-01-01"))
但是这些代码将我的第 2 列更改为 "NA"。
请帮忙。
你确实应该在调用之前清理数据 as.Date
您能否先确保您的 data.frame 的 stringsAsFactors=FALSE,然后尝试
stk[stk$Stockout_start=="\N","Stockout_start"]=NA
然后是你的代码
stk[,2]<- as.Date(as.character(stk[,2]),format = "%y-%m-%d %H:%M:%S")
stk[,2]<- as.character(as.Date(stk[,2], origin = "1970-01-01"))
您可以在 read.csv/read.table
中指定 na.strings
和 stringsAsFactors=FALSE
。 (我把分隔符改成,
并保存了输入数据)
stk <- read.csv('Akash.csv', header=TRUE, stringsAsFactors=FALSE,
sep=",", na.strings="\N")
head(stk,3)
# sku Stockout_start Stockout_End create_date
#1 0BX-164463 <NA> 1/29/2015 11:35 1/29/2015 11:35
#2 0BX-164463 2/11/2015 18:01 <NA> 2/11/2015 18:01
#3 0BX-164464 <NA> 1/29/2015 11:38 1/29/2015 11:38
如果需要将多列替换为"Date"class
stk[-1] <- lapply(stk[-1], as.Date, format='%m/%d/%Y %H:%M')
str(stk)
#'data.frame': 15 obs. of 4 variables:
#$ sku : chr " 0BX-164463" " 0BX-164463" " 0BX-164464" " 0BX-164464" ...
#$ Stockout_start: Date, format: NA "2015-02-11" ...
#$ Stockout_End : Date, format: "2015-01-29" NA ...
#$ create_date : Date, format: "2015-01-29" "2015-02-11" ...
更简单的代码是strptime
stk[,2]<-strptime(stk[,2], "%d/%m/%Y %H:%M")
我一直在尝试从 R 中的数据集中删除换行符。所有列都是因子,因此在我可以用 "NA" 替换“\n”之前,我需要更改数据类型从因素到字符或日期。我提到我的代码和示例数据集以便更好地理解:
sku Stockout_start Stockout_End create_date
0BX-164463 \N 1/29/2015 11:35 1/29/2015 11:35
0BX-164463 2/11/2015 18:01 \N 2/11/2015 18:01
0BX-164464 \N 1/29/2015 11:38 1/29/2015 11:38
0BX-164464 1/30/2015 4:38 \N 1/30/2015 4:38
0BX-164481 \N 1/28/2015 9:58 1/28/2015 9:58
0BX-164482 \N 1/29/2015 11:37 1/29/2015 11:37
0BX-164482 2/4/2015 7:17 \N 2/4/2015 7:17
0BX-164483 \N 1/29/2015 11:37 1/29/2015 11:37
0BX-164483 2/7/2015 4:37 \N 2/7/2015 4:37
0BX-164496 \N 1/29/2015 9:45 1/29/2015 9:45
0BX-164497 \N 1/28/2015 10:02 1/28/2015 10:02
0BX-164498 \N 1/29/2015 9:45 1/29/2015 9:45
0BX-164499 \N 1/29/2015 11:36 1/29/2015 11:36
0BX-164500 \N 1/29/2015 11:36 1/29/2015 11:36
0BX-164501 \N 1/29/2015 11:36 1/29/2015 11:36
我一直在使用下面提到的代码来更正数据:
stk[,2]<- as.Date(as.character(stk[,2]),format = "%y-%m-%d %H:%M:%S")
stk[,2]<- as.character(as.Date(stk[,2], origin = "1970-01-01"))
但是这些代码将我的第 2 列更改为 "NA"。 请帮忙。
你确实应该在调用之前清理数据 as.Date
您能否先确保您的 data.frame 的 stringsAsFactors=FALSE,然后尝试
stk[stk$Stockout_start=="\N","Stockout_start"]=NA
然后是你的代码
stk[,2]<- as.Date(as.character(stk[,2]),format = "%y-%m-%d %H:%M:%S")
stk[,2]<- as.character(as.Date(stk[,2], origin = "1970-01-01"))
您可以在 read.csv/read.table
中指定 na.strings
和 stringsAsFactors=FALSE
。 (我把分隔符改成,
并保存了输入数据)
stk <- read.csv('Akash.csv', header=TRUE, stringsAsFactors=FALSE,
sep=",", na.strings="\N")
head(stk,3)
# sku Stockout_start Stockout_End create_date
#1 0BX-164463 <NA> 1/29/2015 11:35 1/29/2015 11:35
#2 0BX-164463 2/11/2015 18:01 <NA> 2/11/2015 18:01
#3 0BX-164464 <NA> 1/29/2015 11:38 1/29/2015 11:38
如果需要将多列替换为"Date"class
stk[-1] <- lapply(stk[-1], as.Date, format='%m/%d/%Y %H:%M')
str(stk)
#'data.frame': 15 obs. of 4 variables:
#$ sku : chr " 0BX-164463" " 0BX-164463" " 0BX-164464" " 0BX-164464" ...
#$ Stockout_start: Date, format: NA "2015-02-11" ...
#$ Stockout_End : Date, format: "2015-01-29" NA ...
#$ create_date : Date, format: "2015-01-29" "2015-02-11" ...
更简单的代码是strptime
stk[,2]<-strptime(stk[,2], "%d/%m/%Y %H:%M")