小编jal*_*pic的帖子

在不离开 RStudio 的情况下退出 RStudio 中的 R 会话

这是一个奇怪的请求 - 但是否有可能 1)从 RStudio 中终止 R 会话但保持 RStudio 打开?...然后 2) 从 RStudio 中开始一个新的 R 会话?

我看到2013年要求RStudio提供这样的功能,但我不知道它是否已实现。

r rstudio

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

在嵌套列表r中求和连续矩阵

我有一个2x2矩阵的列表,看起来像这样:

matlist=
  list(structure(list(`1` = structure(c(8, 16, 3, 13), .Dim = c(2L, 2L)),
                    `2` = structure(c(6, 3, 0, 6), .Dim = c(2L, 2L)), 
                    `3` = structure(c(39,55, 15, 11), .Dim = c(2L, 2L)), 
                    `4` = structure(c(46, 53, 18,5), .Dim = c(2L, 2L)), 
                    `5` = structure(c(14, 6, 1, 12), .Dim = c(2L,2L)), 
                    `6` = structure(c(20, 6, 0, 12), .Dim = c(2L, 2L)), 
                    `7` = structure(c(4, 1, 0, 4), .Dim = c(2L, 2L))), 
                    .Names = c("1","2", "3", "4", "5", "6", "7" )), 
     structure(list(`1` = …
Run Code Online (Sandbox Code Playgroud)

r

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

从netlogo中的矩阵访问海龟数据

我试图让海龟在使用netlogo的ABM中互相争斗.目前,海龟随机移动每个蜱虫.我希望他们在每个蜱虫处随机找到另一只乌龟并与它们作斗争.最终,我会让他们只与邻居打架,但目前配对是随机的.

战斗的胜利者取决于每对海龟之间的获胜概率.我习惯在R中做这些模型,我将这些信息存储在矩阵中.例如

[[    1  0.95  0.95 ]
 [ 0.05     1  0.75 ]
 [ 0.05  0.25     1 ]]
Run Code Online (Sandbox Code Playgroud)

在这里,第一排中的乌龟有可能在第2栏或第3栏中击败乌龟95%.第2排中的乌龟有5%可能赢得对柱A而75%有可能赢得对阵柱C. 我把1放在对角线上,但乌龟不能打自己.随着时间的推移,海龟会因战斗而失去能量 - 但这还没有被添加到模型中.

到目前为止,这是我的代码.当我挑选海龟找到"受害者"时,我希望能够从这个矩阵中选择一对获胜概率.例如,如果我选择turtle0和turtle3作为受害者,我想模拟一场"战斗",即turtleA是获胜率为95%的胜利者.

以这种方式使用矩阵是在netlogo中执行此操作的最佳方法吗?或者我使用其他编程语言偏差太大了?

extensions [matrix]

globals []

turtles-own [
  energy ;;  energy level
  ]

to setup
  ca

  let m matrix:from-row-list [[1 .95 .95] [.05 1 .75] [.05 .25 1] ]
  print matrix:pretty-print-text m ;;just to check if matrix is correct

  crt 3 [
    setxy random-xcor random-ycor
    set color 11
    set shape "mouse side"
    set size  2
  ]
  ask patches [ …
Run Code Online (Sandbox Code Playgroud)

netlogo

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

使用 httr 从私有 GitHub 存储库加载 csv 文件

我想从私有 GitHub 存储库下载 csv 文件并将其加载到当前环境。我不想简单地这样做,read_csv("raw_git_url")因为脚本将是公开的,复制/粘贴 raw_git_url 会让我留下filename.csv?token=AHh_HT3Aetc....,我不希望我的令牌号被公开。

相反,我获得了 GitHub 身份验证令牌并将其作为.Renviron文件放入我的工作目录中。

例如,我可以将文件写入磁盘/工作目录,如下所示:

library(httr)
url <- "https://raw.githubusercontent.com/username/privatereponame/master/dataname.csv"
GET(url, write_disk("mynew.csv", overwrite=TRUE))
Run Code Online (Sandbox Code Playgroud)

但我不想写副本 - 只需在当前环境中提供 csv 文件即可。我错过了一些明显的东西吗?更改write_disk....readr::read_csv命令不起作用。

我可以做一件很奇怪的事情 - 像这样访问原始内容:

x=GET(url, authenticate(Sys.getenv("GITHUB_PAT1"), ""))
enc<-stringi::stri_enc_detect(content(x, "raw"))
content(x, "text", encoding = enc[[1]]$Encoding[1])
Run Code Online (Sandbox Code Playgroud)

...然后编写一些脚本将文本转换为 csv...但这感觉太啰嗦了。

r

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

在R中使用链语法时如何获得反向排名顺序

当使用基数 R 时, rank()我们可以通过使用 来让它以相反的顺序对向量进行排序-。我想rank()在一个链中使用%>%(我有我的理由)。但是,是否有一种快速而简单的方法可以让它提供与rank(-x)在链中使用时相同的输出?我觉得这应该很简单,但我很想念它。

library(magrittr)


rank(c(5,7,14,3))   # [1] 2 3 4 1

rank(-c(5,7,14,3))  # [1] 3 2 1 4

c(5,7,14,3) %>% rank  # [1] 2 3 4 1

c(5,7,14,3) %>% rank(-.) # [1] 2 3 4 1   Desired output would be [1] 3 2 1 4
Run Code Online (Sandbox Code Playgroud)

r

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

在r中转换矩阵的更快捷的方法是什么?

我试图根据各种规则转换矩阵.

拿这个矩阵,m:

x<-c(NA,0,0,0,0,0,4,NA,0,0,1,1,0,0,NA,0,2,4,4,1,3,NA,2,3,0,1,2,0,NA,1,0,0,0,0,0,NA)
m<-matrix(x,6,6, byrow=T)
rownames(m)<-colnames(m)<-LETTERS[1:6]
m

#   A  B  C  D  E  F
#A NA  0  0  0  0  0
#B  4 NA  0  0  1  1
#C  0  0 NA  0  2  4
#D  4  1  3 NA  2  3
#E  0  1  2  0 NA  1
#F  0  0  0  0  0 NA
Run Code Online (Sandbox Code Playgroud)

转换规则如下:

1)对角线应保持NA.

2)对于m [i,j]> m [j,i]的所有实例,则m [i,j]得到'1',m [j,i]得到0.

3)对于m [i,j] == m [j,i]并且两者都不等于0的所有实例,则m [i,j]和m [j,i]都应该被赋值为0.5

4)当m [i,j]和m [j,i]都等于0时,其中一个应该随机得到'1'而另一个应该得到'0'.

我可以通过这个计算来完成步骤1-3:

 m1 <- (m > t(m))+0 …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

有条件地在ggplot2中应用scale_fill_gradient

我正在使用geom_tilegeom_text在中绘制以下数据ggplot2

mydf 

   Var1 Var2        dc1 bin
1     H    G 0.93333333   0
2     G    H 0.06666667   1
3     I    G 0.80000000   0
4     G    I 0.20000000   1
5     J    G 0.33333333   1
6     G    J 0.66666667   0
7     K    G 0.57894737   1
8     G    K 0.42105263   0
9     I    H 0.80000000   0
10    H    I 0.20000000   1
11    J    H 0.25000000   0
12    H    J 0.75000000   1
13    K    H 0.20000000   0
14    H    K 0.80000000 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

从tidyr的输出中删除不完整的案例 - gather() - r

我在数据框中有不整齐的数据,看起来像这样.

在这里你可以在'团队'中看到一些足球队的名字.Name1-3是变量,列出了第一列中用于引用这些团队的不同名称.

               team             name1        name2      name3
1      Loughborough      Loughborough                        
2        Luton Town        Luton Town        Luton           
3      Macclesfield      Macclesfield                        
4  Maidstone United  Maidstone United                        
5   Manchester City   Manchester City     Man City           
6 Manchester United Manchester United Newton Heath Man United
7    Mansfield Town    Mansfield Town    Mansfield           
8      Merthyr Town      Merthyr Town                        
Run Code Online (Sandbox Code Playgroud)

我的目标是使用team-name1,team-name2,team-name3配对将数据分成2列.我只想保留那些配对,其中有name1,name2或name3中的数据.

要做到这一点,我正在尝试tidyr的 - gather()

temp <- dat %>% gather(key, value, 2:4) 
temp$key<-NULL
temp
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出:

                team             value
1       Loughborough      Loughborough
2         Luton Town        Luton Town
3       Macclesfield      Macclesfield
4   Maidstone United …
Run Code Online (Sandbox Code Playgroud)

r reshape2 dplyr tidyr

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

将ggvis整合到闪亮的错误

我正在尝试学习如何用ggvis图替换闪亮的静态图.用下面ui.Rserver.R文件,我可以得到一个完全正常工作闪亮应用程序时,我的情节输出基地-R或ggplot.当我尝试使用ggvis时出现以下错误.

Error in handlers$add(handler, key, tail) : Key / already in use

我已经尝试将我的文件的位置更改为不同的目录,清除我的全局环境等.到目前为止似乎没有任何工作.

我试图重现最小的可重现的例子.以下是在我的机器上重现错误.我正在输入存储在与ui.R和server.R相同的文件夹中的csv文件中的数据.我添加了一些可用于重现csv文件的数据的dput().

这是一个例子:

ui.R

library(shiny)
library(dplyr)
library(ggvis)


# Define UI
shinyUI(pageWithSidebar(


  # Application title
  headerPanel("Cricket"),

  sidebarPanel(

    selectInput("hteam", 
                label = "Home Team",
                choices = c("All Teams", "Australia", "England"), selected = "All teams"),

    br()

  ),


  mainPanel(
    plotOutput("CrickPlot")
  )

))
Run Code Online (Sandbox Code Playgroud)

server.R

library(shiny)
library(dplyr)
library(ggvis)




shinyServer(function(input, output) {


  #### Input raw data
  df <- read.csv("mydf.csv", stringsAsFactors=F, header=T)

  df1 <- reactive({

    hometeam <-  input$hteam

  if(input$hteam != "All Teams"){  df …
Run Code Online (Sandbox Code Playgroud)

r shiny ggvis

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

在需要时使用strsplit拆分字符向量与变量(R)中的所有观察值不一致

我的数据如下所示:

   duration                       obs   another
 1 1.801760     ID: 10 DAY: 6/10/13 S    orange
 2 1.868500     ID: 10 DAY: 6/10/13 S     green
 3 0.233562     ID: 10 DAY: 6/10/13 S    yellow
 4 5.538760       ID:96 DAY: 6/8/13 T    yellow
 5 3.436700       ID:96 DAY: 6/8/13 T      blue
 6 0.533856       ID:96 DAY: 6/8/13 T      pink
 7 2.302250       ID:96 DAY: 6/8/13 T    orange
 8 2.779420       ID:96 DAY: 6/8/13 T     green
Run Code Online (Sandbox Code Playgroud)

我只包含了3个变量,但实际上我的数据有很多.我的问题是看丑陋的"obs"变量.我从另一个人那里收到了这些数据,这些人不一致地将这些信息输入到他们正在使用的软件中.

'obs'包含三条信息: - id(ID:10,ID:96等) - 日期(M/D/Y) - 标识符(S或T)

我想分割这些信息并提取ID号(10或96),日期(例如6/8/13)和标识符(S或T).

为此,我尝试使用strsplit进行以下操作:

temp<-strsplit(as.character(df$obs), " ")
mat<-matrix(unlist(temp), ncol=5, byrow=TRUE)
Run Code Online (Sandbox Code Playgroud)

我认为这可以像我的实际数据那样工作,我有130,000个观察结果,我没有意识到某些观察结果存在id在"ID:"和数字之间没有空格的问题.例如,在上面的数据中,"ID:96"在冒号和数字之间没有空格.显然,我收到了这条警告信息: …

r gsub strsplit

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

标签 统计

r ×9

dplyr ×1

ggplot2 ×1

ggvis ×1

gsub ×1

matrix ×1

netlogo ×1

reshape2 ×1

rstudio ×1

shiny ×1

strsplit ×1

tidyr ×1