这段代码试图在dplyr管道中编辑一些字符串,我遇到了问题。以下是引发以下错误的一些数据。有什么想法吗?
data_frame(id = 1:5,
name = c('this and it pretty long is a',
'name is a',
'so and so and so and so and so',
'this is a',
'this is a variabel name'))
%>%
str_trunc(.,
string = .$name,
width = 10,
side='right',
ellipsis = '')给我这个错误:Error in str_trunc(., string = .$name, width = 10, side = "right", ellipsis = ". . . ") : unused argument (.)。
谢谢。
发布于 2018-03-22 20:58:09
您需要使用mutate或mutate_at/if/all来更改列的内容。
data_frame(id = 1:5,
name = c('this and it pretty long is a',
'name is a',
'so and so and so and so and so',
'this is a',
'this is a variabel name')) %>%
mutate_at("name", str_trunc, width = 10, side='right', ellipsis = '')
# A tibble: 5 x 2
id name
<int> <chr>
1 1 this and i
2 2 name is a
3 3 "so and so "
4 4 this is a
5 5 "this is a "我在这里使用mutate_at是出于个人喜好。请注意,变异列将作为第一个参数自动传递。如果您想将它放在函数调用的其他地方,请将其称为.。
发布于 2018-03-22 21:00:33
在data中没有str_trunc参数,所以需要将string提供给它。您可以使用
data_frame(id = 1:5,
name = c('this and it pretty long is a',
'name is a',
'so and so and so and so and so',
'this is a',
'this is a variabel name'))$name %>%
str_trunc(width = 10,
side='right',
ellipsis = '')发布于 2018-03-22 21:06:54
如果要从现有列中添加/更新列,请使用mutate函数。
不能直接在管道中使用stringr函数。
data_frame(id = 1:5,
name = c('this and it pretty long is a',
'name is a',
'so and so and so and so and so',
'this is a',
'this is a variabel name')) %>%
mutate(name=str_trunc(name,width=10,side='right',ellipsis=''))
## # A tibble: 5 x 2
## id name
## <int> <chr>
## 1 1 this and i
## 2 2 name is a
## 3 3 "so and so "
## 4 4 this is a
## 5 5 "this is a "变异(诸如此类)相当于以下内容:
> df<-data_frame(id = 1:5,
name = c('this and it pretty long is a',
'name is a',
'so and so and so and so and so',
'this is a',
'this is a variabel name'))
> df
## # A tibble: 5 x 2
## id name
## <int> <chr>
## 1 1 this and it pretty long is a
## 2 2 name is a
## 3 3 so and so and so and so and so
## 4 4 this is a
## 5 5 this is a variabel name
> df$name<-str_trunc(df$name,width=10,side='right',ellipsis='')
> df
## # A tibble: 5 x 2
## id name
## <int> <chr>
## 1 1 this and i
## 2 2 name is a
## 3 3 "so and so "
## 4 4 this is a
## 5 5 "this is a https://stackoverflow.com/questions/49438265
复制相似问题