什么网站可以做兼职销售,班级优化大师简介,注册网站需要什么手续,互联网商城有限公司索引数据框中的某一列
df$A可以索引数据框df中列名为A的列的所有值。那么假如列名是一个R对象怎么做#xff1f;
df - data.frame(A1:5, B(1:5)*2)df$A## [1] 1 2 3 4 5needed_column A# df$needed_column ? Wrong# 注意是双方括号
df[[needed_column]]## [1] 1 2 3 4…索引数据框中的某一列
df$A可以索引数据框df中列名为A的列的所有值。那么假如列名是一个R对象怎么做
df - data.frame(A1:5, B(1:5)*2)df$A## [1] 1 2 3 4 5needed_column A# df$needed_column ? Wrong# 注意是双方括号
df[[needed_column]]## [1] 1 2 3 4 5ggplot2绘图中指定所需的列信息
ggplot绘图时可以直接提供列名字如下面的A和B分别指定为x轴和y轴指定绘图属性但如果列名字是一个R对象呢这一情况常发生于自定义函数时。
library(ggplot2)ggplot(datadf, aes(xA, yB)) geom_point()如下就需要使用sym和!!了都来源于rlang包。
1、sym把一个R字符串对象转换为一个symbol。 2、(bang-bang操作符)!!则把symbol再转回R字符串对象等同于直接写这个对象。
看新的例子中xvariable“A”xvariable_en - sym(xvariable)转换为了symbolaes(x!!xvariable_en)等同于直接写aes(xA)。兜兜转转2步转换把想传的值传进去了。
注意sym和!!的使用
#
ggplot_points - function(data, xvariable, yvariable){xvariable_en - sym(xvariable)yvariable_en - sym(yvariable)ggplot(data, aes(x!!xvariable_en, y!!yvariable_en)) geom_point()
}ggplot_points(df, A, B)另外还有syms和!!!则可以转换向量、列表对象。
library(dplyr)
df %% select(A,B)## A B
## 1 1 2
## 2 2 4
## 3 3 6
## 4 4 8
## 5 5 10# 等同于
columns - c(A,B)
columns_en - syms(columns)
df %% select(!!!columns_en)## A B
## 1 1 2
## 2 2 4
## 3 3 6
## 4 4 8
## 5 5 10写个公式 (formula)
公式 (formula)是一个在运算和绘图中常用的形式直接写公式A~B可以但如果是用对象构造公式呢
lm(A~B, datadf)##
## Call:
## lm(formula A ~ B, data df)
##
## Coefficients:
## (Intercept) B
## 1.192e-15 5.000e-01通过as.formula转换
y A
z Bformula1 - as.formula(paste(y,~, z))
lm(formula1, datadf)##
## Call:
## lm(formula formula1, data df)
##
## Coefficients:
## (Intercept) B
## 1.192e-15 5.000e-01当然下面这个“神奇”的写法也可以整个表达式构建一个字符串再解析执行出来。
eval(parse(textpaste(lm(, y, ~, z, , datadf))))##
## Call:
## lm(formula A ~ B, data df)
##
## Coefficients:
## (Intercept) B
## 1.192e-15 5.000e-01P1 R基本语法和使用方式01 P2 R基本语法和使用方式02