在dplyr链期间,在行级别而不是列级别进行转换

时间:2017-06-28 06:40:20

标签: r dplyr

这是一个1列数据框:

x <- c("   [CAD] TRAFF-S", "[CAD] SUSP-A   ", "    [CAD] CRASH", "[CAD] TRAFF-S ", "[CAD] PARKING")
x <- data.frame(x)
> x
                 x
1    [CAD] TRAFF-S
2  [CAD] SUSP-A   
3      [CAD] CRASH
4   [CAD] TRAFF-S 
5    [CAD] PARKING

我想剥离空白并从qdap包中查看Trim。

问题是Trim()的输入和我想要使用的qdap的其他函数期望向量而不是数据帧。通常情况下,由于预处理,矢量长度可能会发生变化,因此将预处理后的矢量重新附加到原始df将很难,因为长度会有所不同。

在示例数据中有一些空格。

尝试:

> dat.p <- x %>% Trim
> dat.p
[1] "c(2, 4, 1, 5, 3)" # I don't understand what this is doing

在dplyr链中迭代x中每一行的适当方法是什么?或者说另一种方式是&#34; dplyr esque&#34;这样做的方法?我希望变量x最终具有相同的格式,1列df,在转换结束时具有相同数量的行和列。

1 个答案:

答案 0 :(得分:0)

您必须mutatex,您可以使用timws来自base R的library(dplyr) dat.p <- x %>% mutate(x = trimws(x, 'both')) dat.p # x # 1 [CAD] TRAFF-S # 2 [CAD] SUSP-A # 3 [CAD] CRASH # 4 [CAD] TRAFF-S # 5 [CAD] PARKING 函数:

SqlCommand