【发布时间】:2017-03-14 18:49:15
【问题描述】:
如果我有以下data.frame:
> df <- data.frame(x = c('a', 'b*', 'c'), y = c('d', 'e', 'f'))
> df
x y
1 a d
2 b* e
3 c f
是否有明确的方法来识别df$x条目中包含字符串值*的行,然后使用此条件强制该行的字符串条目与自身前面的行合并,从而导致data.frame 如下:
> df
x y
1 a b* d e
2 c f
我假设问题的第一部分(识别包含 `* 的 x 行值)可以使用正则表达式以相当简单的方式完成。我无法确定如何强制 data.frame 行与其前面的行合并。
一个特别棘手的挑战是,如果一行中的多个条目具有该模式,例如
> df <- data.frame(x = c('a', 'b*', 'c*'), y = c('d', 'e', 'f'))
> df
x y
1 a d
2 b* e
3 c* f
在这种情况下,生成的 data.frame 应该如下所示:
> df
x y
1 a b* c* d e f
我发现的主要问题是,在运行将字符串从 df[2,] 粘贴到 df[1,] 的循环的一次迭代后,data.frame 索引不适应新的 data.frame 大小:
> df
x y
1 a b* d e
3 c* f
因此,随后的索引被中断。
【问题讨论】:
-
您希望新的
df的输出是什么? -
我已经对我的问题进行了编辑,以显示所需的输出并更好地解释我遇到的困难。