【发布时间】:2018-08-03 11:14:29
【问题描述】:
我在 R 中有一个包含 1000 行的数据框,变量 var1_string 是一个字符串,如下所示:
var_1_ID var1_string
1 "object.ID = 00001, object.ID.N = 1, object.subfeature.ID = 55555, object.subfeature.e1 = 1, object.subfeature.e2 = False, object.subfeature.ID = 66666,object.subfeature.e1 = 2, object.subfeature.e4 = 50 object.subfeature.e9 = abc, object.feature = 3, object.feature = cd, object.feature = ab.."
2 "object.ID = 00001, object.ID.N = 1, object.subfeature.ID = 55555, object.subfeature.e1 = 1, object.subfeature.e2 = False, object.subfeature.ID = 66666,object.subfeature.e1 = 2, object.subfeature.e4 = 50 object.subfeature.e9 = abc, object.feature = 3, object.feature = cd, object.feature = ab.."
and so on for n rows...
有没有一种快速的方法可以将以下内容提取到新列中:
new_column_1 ="object.ID = 00001, object.ID.N = 1"
new_column_2 到 new_column_n 将包含 "object.subfeature.ID.... 到下一个 object.subfeature.ID,依此类推,直到没有更多子功能.....
所以在这个例子中:
new_column_2 = object.subfeature.ID = 55555, object.subfeature.e1 = 1, object.subfeature.e2 = False,
然后下一列包含下一个object.subfeature.ID 块,例如object.subfeature.ID = 66666,object.subfeature.e1 = 2, object.subfeature.e4 = 50
最后是所有object.features..的单独列\
例如所需的输出:
Var_1_ID Var1_string New_col1 New_col2 New_col3
1 String as above object.ID = 00001, object.ID.N = 1 object.subfeature.ID = 55555, object.subfeature.e1 = 1, object.subfeature.e2 = False object.subfeature.ID = 66666,object.subfeature.e1 = 2, object.subfeature.e4 = 50
object.subfeature.e9 = abc, object.feature = 3, object.feature = cd, object.feature = ab..
2 String as above object.ID = 00001, object.ID.N = 1
有没有办法使用子字符串?还是必须使用stringr::str_extract / dplyr::mutate(strsplit...)?
注意:可能有任意数量的 object.subfeatures,例如 `object.subfeature.ID = 55555 及其部分,从 0 到 n
【问题讨论】:
-
请发布到控制台
dput(YOURDATA[1:3,])并在此处发布结果! -
tidyr 分开,但是你将如何处理不同数量的元素的不同字符串长度,但仍然像上面那样分成新列?
-
预期输出描述不佳