【发布时间】:2015-02-20 23:12:10
【问题描述】:
我是 R 的初学者,需要帮助才能在我的 data.frame 中执行以下步骤:
1) 解析出每一列中的非空值,并且 2) 将每列的解析值转换为向量
例如,对于 A 公司,我想做的是为该列中的所有非空白值拉取“-”和“@”之间的值(即,对于 A 公司的每个非空白值,60) .然后我想创建一个包含所有值的向量,例如vector = (parseddata1,parseddata2,parseddata3,etc).
对我来说最困难的部分是逐个单元格地解析每一列,然后以某种方式将每一列中的值转换为向量。
R 对象:
Balfour Beatty Rail (uk)-1 Balfour Beatty Rail (uk)-2
1
2 22 - 4/30/2013 - 30@2.4 27 - 4/30/2013 - 10@2.4
3 17 - 5/31/2013 - 30@2.4 18 - 5/31/2013 - 10@2.4
4 16 - 6/30/2013 - 30@2.4 17 - 6/30/2013 - 10@2.4
5 18 - 7/31/2013 - 30@2.4 19 - 7/31/2013 - 10@2.4
6 19 - 8/31/2013 - 30@2.4 39 - 8/31/2013 - 10@2.4
Balfour Beatty Utility Solutions-1
1 17 - 3/31/2013 - 210@2.4
2 17 - 4/30/2013 - 210@2.4
3 15 - 5/31/2013 - 420@2.4
4 19 - 6/30/2013 - 420@2.4
5 16 - 7/31/2013 - 420@2.4
6 15 - 8/31/2013 - 420@2.4
dat <- structure(list(`Balfour Beatty Rail (uk)-1` = c("", "22 - 4/30/2013 - 30@2.4",
"17 - 5/31/2013 - 30@2.4", "16 - 6/30/2013 - 30@2.4", "18 - 7/31/2013 - 30@2.4",
"19 - 8/31/2013 - 30@2.4"), `Balfour Beatty Rail (uk)-2` = c("",
"27 - 4/30/2013 - 10@2.4", "18 - 5/31/2013 - 10@2.4", "17 - 6/30/2013 - 10@2.4",
"19 - 7/31/2013 - 10@2.4", "39 - 8/31/2013 - 10@2.4"), `Balfour Beatty Utility Solutions-1` = c("17 - 3/31/2013 - 210@2.4",
"17 - 4/30/2013 - 210@2.4", "15 - 5/31/2013 - 420@2.4", "19 - 6/30/2013 - 420@2.4",
"16 - 7/31/2013 - 420@2.4", "15 - 8/31/2013 - 420@2.4")), .Names = c("Balfour Beatty Rail (uk)-1",
"Balfour Beatty Rail (uk)-2", "Balfour Beatty Utility Solutions-1"
), row.names = c(NA, 6L), class = "data.frame")
任何帮助将不胜感激!
【问题讨论】:
-
请分享
dput(head(my_data, 18)),其中my_data是您的数据框。 (如果这还不是 R 中的数据框,那么您需要告诉我们它是什么)。 -
嘿格雷戈尔。共享 dput 的目的是什么?很长很长,我看不出它对你有什么帮助。
-
如果您使用
dput,我们可以将其复制/粘贴到 R 中并获得完全相同的数据结构,具有相同的列类和所有内容。我们将拥有您的数据对象的精确副本。然后我们调用您数据上的所有工作和测试代码。关于将您发布到 R 中的图像的唯一方法是手动输入它——即使这样也不清楚您的列是因子还是字符,是否有奇怪的编码...... -
只发布前 20 行的输出。不能再是您发布的图片了。这些图片在构建用于测试的 R 对象时完全没有用。
-
结构(列表(
Balfour Beatty Rail (uk)-1= c("", "22 - 4/30/2013 - 30@2.4", "17 - 5/31/2013 - 30@2.4", " 16 - 2013 年 6 月 30 日 - 30@2.4","18 - 2013 年 7 月 31 日 - 30@2.4","19 - 2013 年 8 月 31 日 - 30@2.4"),Balfour Beatty Rail (uk)-2= c("" , "27 - 4/30/2013 - 10@2.4", "18 - 5/31/2013 - 10@2.4", "17 - 6/30/2013 - 10@2.4", "19 - 7/31/ 2013 - 10@2.4", "39 - 8/31/2013 - 10@2.4"),Balfour Beatty Utility Solutions-1= c("17 - 3/31/2013 - 210@2.4",
标签: r parsing vector dataframe