是否可以通过管道传输数据框变量
is it possible to pipe a data frame variable
我有两个独立的操作:
allusers$ref <- str_to_upper(allusers$ref)
allusers$ref <- str_trim(allusers$ref)
是否可以通过管道传输它们?
allusers$ref <- str_to_upper(allusers$ref) %>% str_trim(allusers$ref)
给予
"Error in match.arg(side) : 'arg' must be of length 1"
理想情况下,我不会每次都输入 allusers$..
当然,你可以写
allusers$ref <- allusers$ref %>% str_to_upper %>% str_trim
那是因为您想将 str_to_upper
和 str_trim
应用于字符串,并且通过管道 allusers$ref
您确实将此字符串作为第一个参数传递。
有点传统的方法是
allusers <- allusers %>% mutate(ref = str_trim(str_to_upper(ref)))
如果您只想在 base R 中执行此操作,最简单的方法可能是使用普通函数组合……
allusers$ref <- str_trim(str_to_upper(allusers$ref))
或者,您可以使用 within
:
allusers <- within(allusers, {
ref <- str_to_upper(ref)
ref <- str_trim(ref)
})
甚至组合这些选项:
allusers <- within(allusers, {
ref <- str_trim(str_to_upper(ref))
})
虽然我确实更倾向于使用 dplyr
风格 mutate
管道,但看到一些替代品可能会很好
我有两个独立的操作:
allusers$ref <- str_to_upper(allusers$ref)
allusers$ref <- str_trim(allusers$ref)
是否可以通过管道传输它们?
allusers$ref <- str_to_upper(allusers$ref) %>% str_trim(allusers$ref)
给予
"Error in match.arg(side) : 'arg' must be of length 1"
理想情况下,我不会每次都输入 allusers$..
当然,你可以写
allusers$ref <- allusers$ref %>% str_to_upper %>% str_trim
那是因为您想将 str_to_upper
和 str_trim
应用于字符串,并且通过管道 allusers$ref
您确实将此字符串作为第一个参数传递。
有点传统的方法是
allusers <- allusers %>% mutate(ref = str_trim(str_to_upper(ref)))
如果您只想在 base R 中执行此操作,最简单的方法可能是使用普通函数组合……
allusers$ref <- str_trim(str_to_upper(allusers$ref))
或者,您可以使用 within
:
allusers <- within(allusers, {
ref <- str_to_upper(ref)
ref <- str_trim(ref)
})
甚至组合这些选项:
allusers <- within(allusers, {
ref <- str_trim(str_to_upper(ref))
})
虽然我确实更倾向于使用 dplyr
风格 mutate
管道,但看到一些替代品可能会很好