我最近更新了R(版本3.4.1)和RStudio(版本1.0.143),我现在无法从Rstudio安装软件包.
如果我直接使用R在R中安装软件包install.packages()就可以正常工作.
如果我尝试使用install.packages()或使用软件包安装菜单在Rstudio中安装软件包,我会收到以下错误.我尝试了一些不同的软件包,并已卸载并重新安装了R和RStudio.
要得到错误:
跑:
install.packages("lme4")
Run Code Online (Sandbox Code Playgroud)
输出:
Installing package into ‘E:/Documents/R/win-library/3.4’
(as ‘lib’ is unspecified)
also installing the dependencies ‘minqa’, ‘nloptr’, ‘RcppEigen’
Warning in install.packages :
lzma decoding result 10
Error in install.packages : error reading from connection
Run Code Online (Sandbox Code Playgroud)
我正在使用我的个人计算机,下面是我的一些系统信息:
输出来自 options("repos")
$repos
CRAN CRANextra
"https://cran.stat.auckland.ac.nz/" "http://www.stats.ox.ac.uk/pub/RWin"
attr(,"RStudio")
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
输出来自 sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_New Zealand.1252 LC_CTYPE=English_New Zealand.1252
LC_MONETARY=English_New …Run Code Online (Sandbox Code Playgroud) 我想找到图中所有节点之间的距离,而不是总和我想要乘以它们的边权重.
举个例子:
library(igraph)
# create a weighted adjacency matrix
mx <- structure(c(0, 0.5, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0, 0, 0.5, 0, 0, 0.5, 0, 0.5,
0, 0, 0, 0, 0, 0.5, 0, 0), .Dim = c(5L, 5L))
## convert to igraph object
mx2 <- graph.adjacency(mx, weighted = TRUE)
Run Code Online (Sandbox Code Playgroud)
我可以得到所有节点之间的距离如下:
shortest.paths(mx2)
[,1] [,2] [,3] [,4] [,5]
[1,] 0.0 0.5 1.0 1.0 1.5
[2,] 0.5 0.0 0.5 0.5 1.0
[3,] 1.0 0.5 0.0 1.0 0.5
[4,] 1.0 0.5 1.0 …Run Code Online (Sandbox Code Playgroud) 我正在处理大型行(最少8百万行),dataframes并且希望基于几个分组变量和进行一些基本计算rmultinom。按照我的代码立场,至少需要大约1秒钟才能完成计算,这不是问题,但是我需要做数千次,所以我真的想加快速度。
我当前正在使用dataframes,tidyverse但我与这两个都不相关。我试图实现使用,data.table但无法弄清楚。关于如何加快速度的任何建议将不胜感激。
一个示例(实际数据可以大于或大于一个数量级):
library(tidyverse)
library(microbenchmark)
# create dummy data
df <- data.frame(fact = rep(letters, each = 312000),
month = rep(month.name, 26),
num = rep(sample(10000:100000, 12), 26),
prob = runif(312))
# Order by month
df <- df[order(df$month), ]
# group by two factor variables and calculate new variable
microbenchmark({
df2 <- df %>%
group_by(fact, month) %>%
mutate(res = ifelse(prob > 0, c(rmultinom(1, num[1], prob = prob)), 0))}, times = 10)
> …Run Code Online (Sandbox Code Playgroud) 我有一个问题,它geom_hex_tern与单个图完美配合,但是当我制作刻面时,十六进制 bin 的大小和形状会失真。
library(tidyverse)
library(ggtern)
# My data
dat <- structure(list(Fact2 = c(0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24, 0.24,
0.24, 0.28, 0.28, 0.28, 0.28, 0.28), x = c(0.05, 0.1, 0.1, 0.1,
0.15, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.25, 0.25, 0.25, 0.25,
0.3, 0.3, 0.35, …Run Code Online (Sandbox Code Playgroud) 我正在绘制一个协作者网络,其中点大小根据一个国家/地区撰写的文章数量进行缩放,点之间的线代表协作,线宽和不透明度根据协作数量进行缩放。例如
library(tidyverse)
# data for lines
df_links <- structure(list(from = c("Argentina", "Argentina", "Canada",
"Austria", "Austria", "Italy", "Austria",
"Italy", "New Zealand"),
to = c("Canada", "Germany", "Germany", "Italy",
"New Zealand", "New Zealand", "Panama",
"Panama", "Panama"),
collabs = c(1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L),
x = c(-64, -64, -106, 15, 15, 13, 15, 13, 175),
y = c(-38, -38, 56, 48, 48, 42, 48, 42, -41),
x_end = c(-106, 10, 10, 13, 175, 175, -81, -81, -81),
y_end = c(56, …Run Code Online (Sandbox Code Playgroud) 我想将一个函数应用于数据框列表.该函数从每个数据框中的两列中获取元素,然后将输出添加到新列中的每个数据框.
创建虚拟数据:
df.1 <- data.frame(data=cbind(rnorm(5, 0), rnorm(5, 2), rnorm(5, 5)))
df.2 <- data.frame(data=cbind(rnorm(5, 0), rnorm(5, 2), rnorm(5, 5)))
names(df.1) <- c("a", "b", "c")
names(df.2) <- c("a", "b", "c")
ls.1<- list(df.1,df.2)
names(ls.1) <- c("cat", "dog")
ls.1
Run Code Online (Sandbox Code Playgroud)
看看数据:
> ls.1
$cat
a b c
1 0.7031868 1.730499 4.286386
2 0.1527551 2.794084 4.348707
3 1.1151157 0.154562 4.647605
4 0.5786497 1.407386 4.118078
5 0.9223104 2.995469 5.065981
$dog
a b c
1 0.04024872 1.6760609 5.013490
2 0.18095899 2.1015250 3.452313
3 -0.86588484 2.1371948 6.389203
4 -0.39499567 …Run Code Online (Sandbox Code Playgroud) 我有以下数据帧示例列表:
cat <- rnorm(5)
dog <- rnorm(5)
mouse <- rnorm(5)
df1 <- cbind(cat,dog,mouse)
df2 <- cbind(cat,dog,mouse)
df3 <- cbind(cat,dog,mouse)
list.1 <- list(df1 = df1,df2 = df2,df3 = df3)
list.1
$df1
cat dog mouse
[1,] -0.6991598 -0.8630006 -0.7564806
[2,] 0.7645475 1.3571995 0.8939621
[3,] 1.0608070 -0.8455111 0.5198387
[4,] -0.2008916 -0.7971714 0.8477894
[5,] -0.6988800 1.0717351 -1.3684944
$df2
cat dog mouse
[1,] -0.6991598 -0.8630006 -0.7564806
[2,] 0.7645475 1.3571995 0.8939621
[3,] 1.0608070 -0.8455111 0.5198387
[4,] -0.2008916 -0.7971714 0.8477894
[5,] -0.6988800 1.0717351 -1.3684944
$df3
cat dog …Run Code Online (Sandbox Code Playgroud) 我正在尝试复制此处发布的湖泊食物网络模型。该模型代表两条食物链(沿海与远洋),由顶级捕食者(鱼类)连接。我已经对模型进行了编码,但是当我在 2-3 个时间步长后运行它时,模型会生成NaN. 我已经多次检查我的代码,寻找括号等问题,但找不到问题。
如果我将fish初始丰度设置为 0,模型就会运行,所以我认为问题一定出在模型的鱼组件上。
以下是方程式:
Ap = 中上层资源,Z = 中上层浮游动物,Pp = 中上层捕食者,F = 鱼类,Al = 沿岸资源,I = 无脊椎动物,Pl = 沿岸捕食者。
这是我对模型进行编码的尝试:
library(deSolve)
# define the model
vade_2005_model <- function(Time, State, Pars){
with(as.list(c(State, Pars)), {
# pelagic components -----------------------------------------------
# resource
pel_res_dt <- (rPel * AP * (1 - (AP/(KT * q)))) - (aZP * ((Z * AP)/(AP + bZP)))
# zooplankton
pel_zoo_dt <- (ef * aZP * ((Z * AP)/(AP + bZP))) …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个图,其中我不使用点来表示数据,而是使用行政边界的轮廓。
下面的代码说明了我要做的事情。只是一个简单的有序散点图。我现在陷入困境,试图用每个行政边界( )的多边形形状替换这些点nz_map。因为其中的多边形nz_map有自己的几何形状,所以我不确定如何将它们放置在绘图空间中的点的位置。
任何建议将不胜感激。
# load packages
library(tidyverse)
library(sf)
library(rnaturalearth)
# map of nz with administrative boundary
nz_map <- ne_states(country = "new zealand", returnclass = "sf")
# get regions of interest and calculate area
nz_map <- nz_map %>%
select(name, region) %>%
filter(region %in% c("South Island", "North Island")) %>%
mutate(area = as.vector(st_area(.)/1e6))
# convert to points to illustrate plotting
nz_map_pnts <- st_centroid(nz_map)
# plot
ggplot() +
geom_point(data = nz_map_pnts, aes(reorder(name, area), y = area)) +
labs(x = …Run Code Online (Sandbox Code Playgroud) 我想根据另一个变量的值控制点/线的颜色顺序。
一个解释我想要做什么的例子:
library(tidyverse)
set.seed(12345)
# example data
df <- data.frame(
country = rep(c("India", "Sweden", "Germany", "Finland", "NZ", "Aus"), each = 4),
year = rep(2010:2013, 6),
value = sample(1:100, 24)
)
# create a rank column
df <- df %>%
group_by(year) %>%
mutate(rank = rank(value, ties.method = "random"))
# plot
ggplot(df, aes(year, rank, color = country)) +
geom_point(size = 5) +
geom_line(size = 2) +
scale_colour_viridis_d(direction = 1) +
scale_y_reverse()
Run Code Online (Sandbox Code Playgroud)
viridis 调色板是有序的,默认情况下,排序是根据颜色变量(countires)的字母顺序设置的,例如澳大利亚最暗(紫色)到瑞典最亮(黄色)。
有没有办法根据rank2010年的变量更改要订购的颜色,例如印度 = 最暗(紫色)到芬兰最亮(黄色)?
在我的真实数据集中有超过 6 个国家,所以我不想手动为国家/地区级别分配颜色。