小编fle*_*lee的帖子

在RStudio中安装软件包时出错:从连接读取错误

我最近更新了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)

r rstudio

13
推荐指数
3
解决办法
2万
查看次数

图节点之间的乘法距离

我想找到图中所有节点之间的距离,而不是总和我想要乘以它们的边权重.

举个例子:

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)

r igraph adjacency-matrix

5
推荐指数
1
解决办法
136
查看次数

大数据框上的group_by和mutate变慢

我正在处理大型行(最少8百万行),dataframes并且希望基于几个分组变量和进行一些基本计算rmultinom。按照我的代码立场,至少需要大约1秒钟才能完成计算,这不是问题,但是我需要做数千次,所以我真的想加快速度。

我当前正在使用dataframestidyverse但我与这两个都不相关。我试图实现使用,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)

r dataframe data.table tidyverse

5
推荐指数
1
解决办法
1195
查看次数

ggtern - 刻面时扭曲的十六进制 bin 大小和形状

我有一个问题,它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)

r ggplot2 ggtern

5
推荐指数
1
解决办法
253
查看次数

当尺寸在多个图层中定义时,ggplot2 多个图例

我正在绘制一个协作者网络,其中点大小根据一个国家/地区撰写的文章数量进行缩放,点之间的线代表协作,线宽和不透明度根据协作数量进行缩放。例如

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)

r ggplot2

4
推荐指数
1
解决办法
66
查看次数

将函数应用于数据框列表中的列并附加结果

我想将一个函数应用于数据框列表.该函数从每个数据框中的两列中获取元素,然后将输出添加到新列中的每个数据框.

创建虚拟数据:

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)

r

2
推荐指数
1
解决办法
3328
查看次数

替换数据框列表中的列值

我有以下数据帧示例列表:

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)

for-loop r list lapply tidyverse

2
推荐指数
1
解决办法
1679
查看次数

从手稿复制 ODE 食物网模型

我正在尝试复制此处发布的湖泊食物网络模型。该模型代表两条食物链(沿海与远洋),由顶级捕食者(鱼类)连接。我已经对模型进行了编码,但是当我在 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)

simulation r ode desolve

2
推荐指数
1
解决办法
65
查看次数

用多边形替换绘图点

我正在尝试创建一个图,其中我不使用点来表示数据,而是使用行政边界的轮廓。

下面的代码说明了我要做的事情。只是一个简单的有序散点图。我现在陷入困境,试图用每个行政边界( )的多边形形状替换这些点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)

r ggplot2 r-sf

2
推荐指数
1
解决办法
92
查看次数

根据另一个变量的值控制颜色的顺序

我想根据另一个变量的值控制点/线的颜色顺序。

一个解释我想要做什么的例子:

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 个国家,所以我不想手动为国家/地区级别分配颜色。

r colors ggplot2

1
推荐指数
1
解决办法
30
查看次数