我有一个数据框,其中时间是因子类,一小时是空白。
我想从每个时间列中删除小时并将其放入小时列
time<- factor(c("13:30:00.994","19:15:20.300"))
time
hour<-c(0,0)
hour
data<- as.data.frame(cbind(hour, as.character(time)))
data
data$hour<-strsplit(as.character(time),":")[[1]][1]
data
data
hour V2
1 13 13:30:00.994
2 13 19:15:20.300
但是看看小时栏13 13 vs 13 19
输出应该剥掉19,所以看起来应该是这样的:
data
hour V2
1 13 13:30:00.994
2 19 19:15:20.300
答案 0 :(得分:0)
hour
是否始终是数据框的前两个字符?如果是这样,可能更容易使用substr()
:
df <- data.frame(time = as.factor(c("13:30:00.994","19:15:20.300")))
transform(df, hour = substr(time, 1, 2))
# time hour
# 1 13:30:00.994 13
# 2 19:15:20.300 19
答案 1 :(得分:0)
尝试:
> data$hour = sapply(strsplit(as.character(data$V2),':'), function(x) x[1])
> data
hour V2
1 13 13:30:00.994
2 19 19:15:20.300