【发布时间】:2016-04-13 14:42:51
【问题描述】:
我有一个要转换为数据框的字符验证器。
它大部分都很干净,但我不知道如何完成清洁。请注意,实际数据是Date 列作为yyyy-mm-dd 和Variable 列作为数字(在本例中为四位但不总是),用逗号分隔。
class(myvec)
[1] "character"
myvec
[1] " \"2016-01-01,8631n\" " " \"2016-01-02,8577n\" "
[3] " \"2016-01-03,8476n\" " " \"2016-01-04,8365n\" "
[5] " \"2016-01-05,8331n\" " " \"2016-01-06,8801n\" "
[7] " \"2016-01-07,5020n\""
应该删除空格和反斜杠“('\”')。与 n\" 相同 预期的输出应该是这样的数据框
Date Variable
[1,] "2016-01-01" "8631"
[2,] "2016-01-02" "8577"
[3,] "2016-01-03" "8476"
[4,] "2016-01-04" "8365"
[5,] "2016-01-05" "8331"
[6,] "2016-01-06" "8801"
[7,] "2016-01-07" "5020"
一旦向量是氏族,我认为这样就可以了
do.call(rbind,strsplit(clean_vector,","))
我想我可以自己将lubridate 和var 转换为数字,用 as.numeric 转换为数字,问题是要让字符向量干净且格式正确。
【问题讨论】:
-
gsub("[n \"]","",x) # "2016-01-01,8631"适用于第一个。您也可以只使用substr,因为您的所有对象似乎都是固定宽度的。 -
@Frank 请发布答案,这太棒了!也可以提供一些解释