我在 Linux 中使用 R 进行编程,每次我想通过键入来编辑函数时
fix(FunctioName)
Run Code Online (Sandbox Code Playgroud)
使用了 VI 编辑器,对我来说,它不是那么方便,我想更改它并使其成为另一个,例如 nano。我正在连接到我们学校的服务器,所以我只有外壳,没有图形界面。
先感谢您。
我在很多R包中的.First.lib函数中看到以下习语:
fullName <- paste("package", pkgname, sep=":")
myEnv <- as.environment(match(fullName, search()))
barepackage <- sub("([^-]+)_.*", "\\1", pkgname)
dbbase <- file.path(libname, pkgname, "R", barepackage)
rm(.First.lib, envir = myEnv)
lazyLoad(dbbase, myEnv)
if(exists(".First.lib", envir = myEnv, inherits = FALSE)) {
f <- get(".First.lib", envir = myEnv, inherits = FALSE)
if(is.function(f))
f(libname, pkgname)
else
stop(gettextf("package '%s' has a non-function '.First.lib'",
pkgname),
domain = NA)
}
Run Code Online (Sandbox Code Playgroud)
我知道在加载包时会运行.First.lib函数.
我知道上面的代码定义了一个包的环境并设置了一个路径,但是我不明白为什么它在显式删除.First.lib函数之后正在寻找一个.First.lib函数.是什么让上述成语如此普遍?将它包含在R包中是"最佳实践"吗?
我正在使用"by"选项创建带有Pandas的facet图,如下所示:
import pandas as pd
pd.Series(randn(1000)).hist(by=randint(0, 4, 1000), figsize=(6, 4))
Run Code Online (Sandbox Code Playgroud)

哪个好.但是我希望x和y轴在所有图中都相同.有没有内置的方法来做到这一点?在ggplot中我会使用该scales="fixed"选项,但我没有看到像Pandas绘图中内置的那样.
显然,我的后备是为我写一些简短的行,但如果有一种自动化的方法,我想使用它.
我用ggplot做了一个非常漂亮的小情节,它看起来很棒.我有一些酒吧,然后是一些横杆.我正在使用包中的theme_economist()那个ggthemes,我想把这个主题和横杆的所有颜色都做成对比色.但我无法弄清楚如何进入主题并为这些元素抓出几种颜色.我可以将它们更改为命名颜色,我可以将它们更改为特定的十六进制颜色,但似乎我应该能够进入主题并说"从这个主题中给出两种截然不同的颜色!" 我怎么做?
这是一个代表我所拥有的......
library(tidyverse)
library(ggthemes)
prices <- data.frame(year=2001:2010,
price=rnorm(10))
additional_junk <- data.frame(year=2001:2010,
thing=rnorm(10))
g_price <- ggplot() + theme_economist() +
scale_fill_economist() +
scale_colour_economist() +
geom_bar(aes(y = price , x = year),
data = prices, stat="identity") +
geom_crossbar(data=additional_junk, aes(x=year, y=thing,
ymin=0, ymax=0)
)
g_price
Run Code Online (Sandbox Code Playgroud)

由于之前的答案,我使用lme4进行了回归.现在我对每个状态都有一个回归拟合,我想用格子来绘制每个州的QQ图.我还想以格子格式绘制每个状态的误差图.如何使用lme4回归的结果制作格子图?
下面是一个使用两种状态的简单样本(是的,我喜欢很好的头韵).我想制作一个由物体配合制成的两个面板格子.
library(lme4)
d <- data.frame(state=rep(c('NY', 'CA'), c(10, 10)), year=rep(1:10, 2), response=c(rnorm(10), rnorm(10)))
fits <- lmList(response ~ year | state, data=d)
Run Code Online (Sandbox Code Playgroud) 假设我有可索引的数据X和Y的来源,比如说矩阵.我想运行一组独立的回归并存储结果.我最初的做法是
results = matrix(nrow=nrow(X), ncol=(2))
for(i in 1:ncol(X)) {
matrix[i,] = coefficients(lm(Y[i,] ~ X[i,])
}
Run Code Online (Sandbox Code Playgroud)
但是,循环很糟糕,所以我可以用lapply来做
out <- lapply(1:nrow(X), function(i) { coefficients(lm(Y[i,] ~ X[i,])) } )
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
我有一个使用正态分布函数pnorm()和qnorm()的规范化方法.我想改变我的逻辑,以便我可以使用经验分布而不是假设正态.我用ecdf()来计算经验累积分布但后来意识到我开始编写一个基本上是经验的p和q版本的函数.有更简单的方法吗?也许包含pecdf()和qecdf()的包?我讨厌重新发明轮子.
我正在为Amazon Elastic Map Reduce开发一个Hadoop流工作流程,它涉及序列化一些二进制对象并将它们流式传输到Hadoop.Hadoop是否具有流输入的最大行长度?
我开始测试越来越大的线,但我想先问一下这里.
RMysql的dbGetQuery将BigInt转换为数字类型.这改变了一些价值观.如何将BigInt字段作为字符串而不是数字读取?
我尝试使用粘贴命令,但它返回相同的向量?
x = c("a","b","c")
y = paste(x)
y
[1] "a" "b" "c"
length(y)
[1] 3
Run Code Online (Sandbox Code Playgroud)
我想要一个"abc"的单个字符