假设我有一个响应变量和一个包含三个协变量的数据(作为玩具示例):
y = c(1,4,6)
d = data.frame(x1 = c(4,-1,3), x2 = c(3,9,8), x3 = c(4,-4,-2))
Run Code Online (Sandbox Code Playgroud)
我想对数据进行线性回归:
fit = lm(y ~ d$x1 + d$x2 + d$y2)
Run Code Online (Sandbox Code Playgroud)
有没有办法编写公式,这样我就不必写出每个协变量?例如,像
fit = lm(y ~ d)
Run Code Online (Sandbox Code Playgroud)
(我希望数据框中的每个变量都是协变量.)我问,因为我的数据框中实际上有50个变量,所以我想避免写出来x1 + x2 + x3 + etc.
我相信我的数据帧是可以的,我的代码还可以.实际上,我已经删除了部分数据框和大部分图形代码,以使事情尽可能基本.但是,我仍然得到:
Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) :
invalid graphics state
Run Code Online (Sandbox Code Playgroud)
这有什么不对?这是数据:
date trt var val
1/8/2008 cc sw5 0.2684138
1/8/2008 cc sw15 0.2897586
1/8/2008 cc sw5 0.2822414
2/8/2008 cc sw5 0.2494583
2/8/2008 cc sw5 0.2692917
2/8/2008 cc sw15 0.2619167
2/8/2008 cc sw5 0.204375
3/8/2008 cc sw5 0.2430625
3/8/2008 cc sw5 0.2654375
3/8/2008 cc sw5 0.2509583
3/8/2008 cc sw5 0.2055625
1/8/2008 ccw sw15 0.2212414
1/8/2008 ccw sw5 0.3613448
1/8/2008 ccw sw5 0.2607586
2/8/2008 ccw sw5 0.2087917
2/8/2008 ccw sw15 0.3390417
2/8/2008 …Run Code Online (Sandbox Code Playgroud) 我喜欢plyr的重命名功能rename.我最近开始使用dplyr,并想知道是否有一种简单的方法可以使用dplyr中的函数重命名变量,这对于plyr来说是否易于使用rename?
我按照这个例子,server.R,文件在这里.
我打算做一个类似的过滤器,但我失去了什么%>%.
# Apply filters
m <- all_movies %>%
filter(
Reviews >= reviews,
Oscars >= oscars,
Year >= minyear,
Year <= maxyear,
BoxOffice >= minboxoffice,
BoxOffice <= maxboxoffice
) %>%
arrange(Oscars)
Run Code Online (Sandbox Code Playgroud) 我正在使用一个简单的ggplot函数,它在循环外工作正常,但即使迭代值不干扰ggplot函数也不在内部.为什么会这样?
这是我的代码
x=1:7
y=1:7
df = data.frame(x=x,y=y)
ggplot(df,aes(x,y))+geom_point()
Run Code Online (Sandbox Code Playgroud)
有用 !但是如果ggplot在for循环中...
for (i in 1:5) {
ggplot(df,aes(x,y))+geom_point()
}
Run Code Online (Sandbox Code Playgroud)
......它不再起作用了!我错过了什么?
谢谢
我正在使用ggplot并且有两个图表,我希望彼此叠加显示.我使用grid.arrangegridExtra来堆叠它们.问题是,无论轴标签如何,我都希望图形的左边缘与右边缘对齐.(问题出现是因为一个图的标签很短而另一个图很长).
问题:
我该怎么做?我没有和grid.arrange结婚,但ggplot2是必须的.
我尝试了什么:
我尝试使用宽度和高度以及ncol和nrow来制作2 x 2网格并将视觉效果放在相对的角落然后玩宽度但我无法在对角处获得视觉效果.
require(ggplot2);require(gridExtra)
A <- ggplot(CO2, aes(x=Plant)) + geom_bar() +coord_flip()
B <- ggplot(CO2, aes(x=Type)) + geom_bar() +coord_flip()
grid.arrange(A, B, ncol=1)
Run Code Online (Sandbox Code Playgroud)

R中有一个选项可以控制数字显示.例如:
options(digits=10)
Run Code Online (Sandbox Code Playgroud)
应该给计算结果10位数,直到R会话结束.在R的帮助文件中,digits参数的定义如下:
digits:控制打印数值时要打印的位数.这只是一个建议.有效值为1 ... 22,默认值为7
所以,它说这只是一个建议.如果我想总是显示10位数而不是更多或更少,该怎么办?
我的第二个问题是,如果我想显示超过22位数,即更精确的计算如100位数,该怎么办?是否可以使用基础R,或者我是否需要额外的包/功能?
编辑:感谢jmoy的建议,我尝试了sprintf("%.100f",pi)它给了
[1] "3.1415926535897931159979634685441851615905761718750000000000000000000000000000000000000000000000000000"
Run Code Online (Sandbox Code Playgroud)
它有48位小数.这是R可以处理的最大限制吗?
我使用以下命令来查找目录名称.
find / -type d -name "ora10"
Run Code Online (Sandbox Code Playgroud)
我的问题是,我不知道确切的目录名称是什么,所以我想找到类似的目录"ora10g","ora10client"等等.
我怎么能找到这个?
y轴标题显得太靠近轴文本.
ggplot(mpg, aes(cty, hwy)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

我试过改变许多参数的值,theme()但似乎没有任何帮助.