1
我想将某列中的某一格式的数据分成多列。下面是我的样本数据:将列中的值分隔为多列名称和列值
df = data.frame(id=c(1,2),data=c('apple:A%1^B%2^C%3_orange:A%1^B%2',
'apple:A%1^B%2^D%3_orange:A%3^B%2'))
# id data
# 1 apple:A%1^B%2^C%3_orange:A%1^B%2
# 2 apple:A%1^B%2^D%3_orange:C%3^B%2
然后将给出以下输出
id data_apple_A data_apple_B data_apple_C data_apple_D data_orange_A data_orange_B
1 1 2 3 1 2
2 1 2 3 1 2
我已经能够做到这一点,但我使用的方法包括循环通过每个行和执行str_split由每个分隔符为了获得每行的数据并将其追加到最终输出数据帧,这是非常缓慢的考虑到我将有500k行20输入列。
我不认为我的for循环是一种正确的R方法来编写此用例。任何帮助将不胜感激。
谢谢,这是工作。但是你可以解释一下na.locf如何工作? – kaexch
@kaexch当有NA值时,'na.locf'将NA值替换为先前的非NA值 – akrun