R语言管道操作中rowSums函数内点(.)的作用相关咨询
R语言管道中
.符号的作用说明 你代码里出现的.是dplyr管道运算符%>%的专用占位符,作用是指代管道前一步输出的处理结果对象。
结合你的示例代码拆解逻辑如下:
df1 %>% replace(is.na(.), 0) %>% mutate(sum = rowSums(.[2:3]))
- 第一层管道中
is.na(.)里的.指代传入的原始数据df1,这一步完成的操作是将df1中所有NA值替换为0,替换后的无NA数据框会继续传入下一层管道。 - 第二层管道中
.[2:3]里的.指代上一步输出的无NA数据框,.[2:3]就是提取该数据框的第2、3列(对应示例中的prices1、prices2列),rowSums对这两列逐行求和后赋值给新列sum。
你也可以对照无管道的等价写法理解.的指代作用:
# 替换所有NA值为0 df1_no_na <- replace(df1, is.na(df1), 0) # 取第2、3列计算行和 df1_no_na$sum <- rowSums(df1_no_na[, 2:3])
可以看到代码中每一处.的位置,对应的就是管道前一步的结果变量。
内容的提问来源于stack exchange,提问作者Anup
相关产品推荐
相关产品推荐

