关于R中管道的奇闻异闻,以至于我决定现在该学习如何使用它们了。 我想对表进行操作,然后添加一列。它可以作为单独的行使用,但是当我尝试使用管道时则不行。有人可以教育我使用管道的方式有什么问题吗?
modtable <- table - mean(table$blank[1:3]) %>%
add_column(n=1)
谢谢!
以上返回错误:
Error in if (nrow(df) != nrow(.data)) { : argument is of length zero
答案 0 :(得分:3)
我们可以将其包装在{}
中,以将其评估为代码块
{table - mean(table$blank[1:3]) }%>%
add_column(n=1)
因为这些运算符(%>%
的顺序或优先级低于+
中的-
,?Syntax
#:: ::: access variables in a namespace
#$ @ component / slot extraction
#[ [[ indexing
#^ exponentiation (right to left)
#- + unary minus and plus ####
#: sequence operator
#%any% special operators (including %% and %/%) #####
#* / multiply, divide
在tidyverse中,不要这样做
library(dplyr)
table %>%
mutate_all(~ . - mean(head(blank, 3))) %>%
add_column(n = 1)
这可以用
重现data(mtcars)
head(mtcars) - mean(mtcars$mpg[1:3]) %>%
add_column(n = 1)
if(nrow(df)!= nrow(.data)){错误:参数长度为零
如果我们创建一个块,
{head(mtcars) - mean(mtcars$mpg[1:3])} %>%
add_column(n = 1)
# mpg cyl disp hp drat wt qsec vs am gear carb n
#Mazda RX4 -0.6 -15.6 138.4 88.4 -17.70 -18.980 -5.14 -21.6 -20.6 -17.6 -17.6 1
#Mazda RX4 Wag -0.6 -15.6 138.4 88.4 -17.70 -18.725 -4.58 -21.6 -20.6 -17.6 -17.6 1
#Datsun 710 1.2 -17.6 86.4 71.4 -17.75 -19.280 -2.99 -20.6 -20.6 -17.6 -20.6 1
#Hornet 4 Drive -0.2 -15.6 236.4 88.4 -18.52 -18.385 -2.16 -20.6 -21.6 -18.6 -20.6 1
#Hornet Sportabout -2.9 -13.6 338.4 153.4 -18.45 -18.160 -4.58 -21.6 -21.6 -18.6 -19.6 1
#Valiant -3.5 -15.6 203.4 83.4 -18.84 -18.140 -1.38 -20.6 -21.6 -18.6 -20.6 1