R:没有分隔符的单独字符串(如Excel中的固定宽度)

时间:2016-10-23 03:16:19

标签: r split

数据集看起来非常像这个

Dataset

我四处搜索但发现只需要一个分隔符的函数。我设法用两列成功地将文件导入到R中。

然后我想将DATE列分为"年","月"和"日期。"所以我想总共有4列。这就是我买股票的地方。该专栏没有通常的" /"或" - "通常带有日期格式。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

正如@alistaire所示,您可以将所拥有的内容转换为R识别的日期格式(将下面的单个字符串替换为列向量df$DATE以处理整个数据框):< / p>

date <- as.Date( '19981201', '%Y%m%d' )
date
[1] "1998-12-01"

从那里,您可以随意分离您的年,月,日。

year <- format( date, "%Y")
year
[1] "1998"

month <- format( date, "%m" )
month
[1] "12"

day <- format( date, "%d" )
day
[1] "01"

当然,您也可以跳过日期步骤,只需将前8个字符分成3个较短的字符串(如@warmoverflow所建议的那样),但我推荐上述内容可能更好。主要是因为你最好使用日期格式来进行排序和绘图,所以沿途也一定要使用它。

响应您的回答/后续问题:

请注意,在步骤3的控制台输出中,列向量标记为类int(整数)。您可能需要确保将其作为字符输入as.Date。它看起来就像你在第4步中尝试做的那样,但是通过在引号中包含向量引用,你传递字符串&#34; v1 $ DATE&#34;,哪个R不知道该做什么用。代替:

v1$date_v2 <- as.Date( as.character( v1$DATE ), format = "%Y%m%d" )