我尝试使用安装包
install.packages("foobarbaz")
Run Code Online (Sandbox Code Playgroud)
但收到了警告
Warning message:
package 'foobarbaz' is not available (for R version x.y.z)
Run Code Online (Sandbox Code Playgroud)
为什么R不认为该套餐可用?
另请参阅这些问题,并参考此问题的具体实例:
我的软件包不能用于R 2.15.2
软件包"Rbbg"不可用(对于R版本2.15.2)
软件包不可用(对于R版本2.15.2)
软件包doMC不适用于R版本3.0.0警告install.packages
依赖'Rglpk'不适用于'fPortfolio'
软件包当我们的R版本没有软件包时该怎么办?
R版本3.0不适用于R的bigvis包吗?
包'syncwave'/'mvcwt'不可用(对于R版本3.0.2)
包'钻石'不可用(对于R版本3.0.0)R
的plyr包是否不适用于R 3.0.2版?
/sf/ask/1510646301/
无法在R 64 3.0.2
软件包上安装的软件包bigmemory "makeR"不可用(适用于3.0.2版) )
包"RTN"不可用(适用于R版本3.0.1)无法
安装geoR
软件包'twitterR'不可用(对于R版本3.1.0)
如何安装'Rcpp,包?我得到"包不可用"
包"数据集"不可用(对于R版本3.1.1)
"包'rhipe'不可用(对于R版本3.1.2)"
/sf/ 31439092 /包dplyr-是-不可供-R-版本-3-1-1
假设我有一个包含多个图例的ggplot.
mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)
Run Code Online (Sandbox Code Playgroud)
我可以像这样关掉所有传说的显示:
(p1 <- p0 + theme(legend.position = "none"))
Run Code Online (Sandbox Code Playgroud)
传递show_guide = FALSE给geom_point(根据这个问题)关闭形状图例.
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想要关闭颜色图例呢?似乎没有办法告诉show_guide哪个图例应用其行为.show_guide对于尺度或美学没有任何争论.
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_discrete(show_guide = FALSE) +
geom_point()
)
# Error in …Run Code Online (Sandbox Code Playgroud) 我收到此错误消息:
Error in if (condition) { : missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
要么
Error in while (condition) { : missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
它是什么意思,我该如何预防呢?
该xlsx软件包可用于从R读取和写入Excel电子表格.不幸的是,即使对于中等大小的电子表格,java.lang.OutOfMemoryError也可能发生.特别是,
library(xlsx)
set.seed(19790801)
n_sheets <- 40
the_data <- replicate(
n_sheets,
{
n_rows <- sample(2e5, 1)
data.frame(
x = runif(n_rows),
y = sample(letters, n_rows, replace = TRUE)
)
},
simplify = FALSE
)
names(the_data) <- paste("Sheet", seq_len(n_sheets))
Run Code Online (Sandbox Code Playgroud)
(其他相关的例外也是可能的,但更罕见.)
在阅读电子表格时,有人提出了类似的问题.
使用Excel电子表格作为CSV上的数据存储介质的主要优点是,您可以在同一文件中存储多个工作表,因此我们在此处考虑每个工作表要写入一个数据框的数据框列表.此示例数据集包含40个数据框,每个数据框具有两列,最多200k行.它设计得足够大,有问题,但你可以通过改变n_sheets和改变大小n_rows.
wb <- createWorkbook()
for(i in seq_along(the_data))
{
message("Creating sheet", i)
sheet <- createSheet(wb, sheetName = names(the_data)[i])
message("Adding data frame", i)
addDataFrame(the_data[[i]], sheet)
}
saveWorkbook(wb, "test.xlsx")
Run Code Online (Sandbox Code Playgroud)
将此文件写入文件的自然方法是使用创建工作簿createWorkbook,然后循环遍历每个数据框调用createSheet和addDataFrame.最后,可以使用工作簿将文件写入文件 …
这是一个示例数据框:
d <- data.frame(
x = runif(90),
grp = gl(3, 30)
)
Run Code Online (Sandbox Code Playgroud)
我想要d包含x每个值的前5个值的行的子集grp.
使用base-R,我的方法是这样的:
ordered <- d[order(d$x, decreasing = TRUE), ]
splits <- split(ordered, ordered$grp)
heads <- lapply(splits, head)
do.call(rbind, heads)
## x grp
## 1.19 0.8879631 1
## 1.4 0.8844818 1
## 1.12 0.8596197 1
## 1.26 0.8481809 1
## 1.18 0.8461516 1
## 1.29 0.8317092 1
## 2.31 0.9751049 2
## 2.34 0.9269764 2
## 2.57 0.8964114 2
## 2.58 0.8896466 2 …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它将可选参数作为名称/值对.
function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs);
names = vargs(1:2:nargs);
values = vargs(2:2:nargs);
validnames = {'foo', 'bar', 'baz'};
for name = names
validatestring(name{:}, validnames);
end
% Do something ...
foo = strmatch('foo', names);
disp(values(foo))
end
example('foo', 1:10, 'bar', 'qwerty')
Run Code Online (Sandbox Code Playgroud)
似乎在提取适当的值时需要付出很多努力(并且它仍然不是特别强大的再次严格指定的输入).有没有更好的方法来处理这些名称/值对?是否有MATLAB附带的辅助函数可以提供帮助?
我想匹配一个正则表达式特殊字符,\^$.?*|+()[{.我试过了:
x <- "a[b"
grepl("[", x)
## Error: invalid regular expression '[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)
(等价stringr::str_detect(x, "[")或stringi::stri_detect_regex(x, "[").)
将值加倍以逃避它不起作用:
grepl("[[", x)
## Error: invalid regular expression '[[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)
也没有使用反斜杠:
grepl("\[", x)
## Error: '\[' is an unrecognized escape in character string starting ""\["
Run Code Online (Sandbox Code Playgroud)
我如何匹配特殊字符?
这个问题的一些特殊情况是陈旧的,写得足够好,因为它可以像这样重复关闭:
在R正则表达式中逃脱的时期
如何逃避R中的问号?
在正则表达式中转义管道("|")
这是我的代码,非常标准,但我收到错误消息:
library(caret)
set.seed(32343)
modelFit = train(type~.,data=training, method='glm')
Run Code Online (Sandbox Code Playgroud)
错误消息:
Error in library(e1071) : there is no package called ‘e1071’
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢!
为了能够比较包的两个版本,我需要能够选择我加载的包的版本.R的软件包系统默认设置为覆盖现有软件包,因此您始终拥有最新版本.如何覆盖此行为?
到目前为止我的想法是:
我可以获取包源,编辑描述以提供不同的名称,并实际构建两个不同的包.我宁愿能够直接使用二进制文件,因为它不那么麻烦.
我不一定需要同时加载两个版本的软件包(只是同时安装在某个地方).我或许Sys.getenv('R_HOME')可以改变R安装包.libpaths()的地方,然后改变R寻找它们的地方.这看起来很酷,所以有没有人有更好的想法?
我有一个名为ddd的R矩阵.当我输入这个,一切正常:
i <- 1
shapiro.test(ddd[,y])
ad.test(ddd[,y])
stem(ddd[,y])
print(y)
Run Code Online (Sandbox Code Playgroud)
对Shapiro Wilk,Anderson Darling和stem的调用全部工作,并提取相同的专栏.
如果我把这段代码放在"for"循环中,那么对Shapiro Wilk和Anderson Darling的调用就会停止工作,而stem&leaf调用和打印调用将继续工作.
for (y in 7:10) {
shapiro.test(ddd[,y])
ad.test(ddd[,y])
stem(ddd[,y])
print(y)
}
The decimal point is 1 digit(s) to the right of the |
0 | 0
0 | 899999
1 | 0
[1] 7
Run Code Online (Sandbox Code Playgroud)
如果我尝试编写一个函数,会发生同样的事情.SW&AD不起作用.其他的电话呢.
> D <- function (y) {
+ shapiro.test(ddd[,y])
+ ad.test(ddd[,y])
+ stem(ddd[,y])
+ print(y) }
> D(9)
The decimal point is at the |
9 | 000
9 |
10 | 00000 …Run Code Online (Sandbox Code Playgroud) r ×9
r-faq ×4
arguments ×1
data.table ×1
dplyr ×1
for-loop ×1
function ×1
ggplot2 ×1
installation ×1
matlab ×1
name-value ×1
package ×1
packages ×1
printing ×1
r-caret ×1
regex ×1
repository ×1
versioning ×1
xlsx ×1