如何更改R中Matrix的列?

时间:2015-10-01 13:52:25

标签: r matrix

Test
N        Date Column2  
1  2015-07-15      56   
2  2015-04-17      45

如何将包含日期的列更改为包含实数的列,我想将每个日期更改为日期的月份,例如2015-07-15更改为7,{{1转到2014-05-13

2 个答案:

答案 0 :(得分:0)

首先转换为数据框:

as.data.frame(mat)
  N       Date Column2
1 1 2015-07-15      56
2 2 2015-04-17      45

然后使用正则表达式提取相关数据:

newdf$Date <- as.numeric(sub(".*-(.*)-.*", "\\1", newdf$Date))
newdf
  N Date Column2
1 1    7      56
2 2    4      45

正则表达式在许多编程语言中都很重要。有关精彩的教程和解释,请尝试http://www.regular-expressions.info/tutorial.html

如果您想使用Date向量,可以尝试不同的方法。

转换为数据框后,就像我们在上面的第一步中所做的那样:

newdf <- as.data.frame(mat)
newdf$Date <- as.Date(newdf$Date)
newdf$Date <- as.numeric(format(newdf$Date, "%m"))

现在,如果我们想要在评论中指明的子集:

newdf[newdf$Date == 7,]
  N Date Column2
1 1    7      56

答案 1 :(得分:0)

为什么不

df <- data.frame(
  N=c(1,2),
  Date=c("2015-07-15","2014-04-21"),
  Column2=c(56,45)
)
df

df$Date <- as.numeric(format(as.Date(df$Date), "%m"))