小编Jen*_*enB的帖子

获得多个Pandas DataFrame的平均值

我正在生成许多具有相同形状的数据帧,我想将它们相互比较.我希望能够获得数据帧的均值和中位数.

         Source.0  Source.1  Source.2  Source.3
cluster                                        
0        0.001182  0.184535  0.814230  0.000054
1        0.000001  0.160490  0.839508  0.000001
2        0.000001  0.173829  0.826114  0.000055
3        0.000432  0.180065  0.819502  0.000001
4        0.000152  0.157041  0.842694  0.000113
5        0.000183  0.174142  0.825674  0.000001
6        0.000001  0.151556  0.848405  0.000038
7        0.000771  0.177583  0.821645  0.000001
8        0.000001  0.202059  0.797939  0.000001
9        0.000025  0.189537  0.810410  0.000028
10       0.006142  0.003041  0.493912  0.496905
11       0.003739  0.002367  0.514216  0.479678
12       0.002334  0.001517  0.529041  0.467108
13       0.003458  0.000001  0.532265  0.464276
14       0.000405  0.005655  0.527576 …
Run Code Online (Sandbox Code Playgroud)

python numpy r pandas

29
推荐指数
5
解决办法
2万
查看次数

R扩展断开了与NetLogo中扩展目录的连接

我想让R和NetLogo使用r扩展程序互相交谈.我传递图形对象而不是简单的变量.这意味着我需要从NetLogo导出文件并在R中导入文件,这意味着他们需要指向同一目录.代码运行完美.但是,一旦运行,NetLogo将失去与extensions文件夹的连接.

它似乎与在R中设置工作目录有关,因为以下MWE也会产生问题.

extensions [r]

to testSETWD
  r:eval "setwd(\"C:\")"
end
Run Code Online (Sandbox Code Playgroud)

成功运行后,然后尝试对NetLogo进行任何编辑,我收到错误Can't find extension ....

只要我在运行R代码后不尝试编辑,NetLogo继续工作,我可以毫无问题地使用扩展.只有当我编辑代码并运行语法分析器(绿色勾选)时才会出现问题.

我做了一个错误报告,但显然不可重现.我正在运行Windows 8.1 64位.这对其他人来说是个问题吗?

r netlogo

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

社区检测算法中权重的含义

还有就是在现有的igraph社区检测算法的比较优秀这里.然而,在算法中使用加权边缘可以应用权重存在一些模糊性.

通常,边缘权重将被定向,使得较高权重建议将节点保持在一起(例如,友谊的强度).通过比较内部和外部的平均加权密度,这与模块化分数很好地协作.

然而,Newman-Girvan社区检测算法使用基于距离的中间性.在这种情况下,我希望边权重应该反映节点之间的距离,以便计算最短路径对路径上的权重求和.也就是说,权重是成本或距离得分,其中较高的值应该分成不同的社区.

在使用Newman-Girvan时,我是否正确期望更高的权重,如果是这样,那么如何通过使用模块化来决定在哪里削减社区数量?

social-networking igraph

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

在NLTK中创建自己的语料库的优点

我在Mysql表中有大量的文本.我想做一些统计分析,然后使用NLTK工具包对我的文本进行一些NLP.我有两个选择:

  1. 从我的数据库表中一次提取所有文本(如果需要,可以将它们放在一个文件中)并使用NLTK函数
  2. 提取文本并将其转换为可与NLTK一起使用的"语料库".

后者似乎相当复杂,我没有找到任何实际描述如何使用它的文章我只发现了这一点: 创建一个MongoDB支持的语料库阅读器,它使用MongoDB作为其数据库,代码非常复杂,还需要知道MongoDB.另一方面,前者看起来非常简单,但会导致从DB中提取文本的开销.

现在的问题是NLTK中语料库的优点是什么?换句话说,如果我接受挑战并深入研究覆盖NTLK方法,以便它可以从MySQL数据库中读取,那值得麻烦吗?将我的文本转换成语料库会给我一些我不能(或有很多困难)使用普通NLTK函数的东西吗?

另外,如果您对将MySQL连接到NLTK有所了解,请告诉我.谢谢

python mysql database nltk

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

R将列表列表转换为dataframe

我需要处理在受密码保护的Excel(xlsx)工作簿中提供的数据.出于法律原因,我无法从那里创建未受保护的Excel文件或csv文件等.所有Excel导入包都不能处理受密码保护的工作簿.

从这个答案导入密码保护的xlsx工作簿到R我已设法提取数据.但是,它是以字符列表格式列表导入的.我的列表的输入看起来像这样:

list(list("ID", "ID1", "ID2"),
     list("V2", NULL, "text2"),
     list("Name", "John Smith", "Mary Brown"),
     list("Score", 1, 2),
     list("email", "JS@gmail.com", "MB@gov.uk"))
Run Code Online (Sandbox Code Playgroud)

我想要的是具有列ID,V2等的数据帧,如下所示:

   ID    V2     Name        Score  email
   ID1   NULL   John Smith  1      JS@gmail.com
   ID2   text2  Mary Brown  2      MS@gov.uk
Run Code Online (Sandbox Code Playgroud)

原始Excel工作簿中有空单元格,因此使用unlist的解决方案将不起作用.

使用从R列表到数据框和其他类似问题的答案组合,我有以下代码(其中listform是列表的名称):

matform <- as.matrix(sapply(listform, function(s) s)) # retains empty
df <- data.frame(matform[2:nrow(matform),])
names(df) = matform[1,]
Run Code Online (Sandbox Code Playgroud)

这很接近,但数据框列出了列.因此,str(df)收益率:

'data.frame':   2 obs. of  5 variables:
 $ ID:List of 2
  ..$ : chr "ID1"
  ..$ : chr "ID2" …
Run Code Online (Sandbox Code Playgroud)

r list dataframe

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

NetLogo 创建固定数量链接的有效方法

我的模型中有大约 5000 个代理(人)。我想给他们任意数量的朋友,并有互惠但随机的配对。因此,如果 A 选择 B 则 B 也选择 A。我的代码运行良好,但速度相当慢。我很可能想在未来增加朋友的数量和人数。有更快的建议吗?

ask people
[ let new-links friends - count my-links
  if new-links > 0
  [ let candidates other people with [ count my-links < friends ]
    create-links-with n-of min (list new-links count candidates) candidates
    [ hide-link ]
  ]
]
Run Code Online (Sandbox Code Playgroud)

请注意,在上面的代码中,朋友是一个全局变量,但我最终的代码可能会概括wanted-number-of-friends为人的一个属性。

已编辑添加了if new-links > 0条件,以便在ask不需要找到候选时避免嵌套。这提高了速度,但仍然不能真正扩展。

social-networking netlogo

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

NetLogo 高效创建任意度分布的网络

这是NetLogo Efficient way to create fixed number of links的后续问题。在专注于避免嵌套的“询问”之后,我现在有了这段代码。它效率更高,但会创建太多链接。显然是逻辑错误,但我看不到。

globals
[ candidates
  friends
]

to setup
  clear-all
  set friends 2
  create-turtles 5000
  set candidates turtles
  make-network
end

to make-network
  ask turtles
  [ let new-links friends - count my-links
    if new-links > 0
    [ let chosen n-of min (list new-links count other candidates) other candidates
      create-links-with chosen [ hide-link ]
      set candidates other candidates
      ask chosen [ if my-links = friends [ set candidates other candidates ] ]
    ] …
Run Code Online (Sandbox Code Playgroud)

netlogo

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

闪亮的动态幻灯片数量

我正在尝试创建一个应用程序来对始终采用相同(csv)格式的模拟结果数据集进行探索性分析:第一列包含运行编号,多列包含输入参数,一列包含时间步长,然后是几列包含感兴趣的值.输入参数和输出值的数量会发生变化,但分隔这些部分的列名始终相同.

典型数据如下:

[run number],capital,weekly,[step],report1
1,10000,100,0,0
1,10000,100,1,2
1,10000,100,2,3
1,10000,100,3,3
Run Code Online (Sandbox Code Playgroud)

我希望用户能够使用输入参数上的滑块选择要分析的模拟运行子集.这意味着我需要创建适当数量的滑块,每个参数输入一个.

我让它读取文件并提取变量名称,并正确列出变量.我也有一些代码可以使用我想要的所有变量(下面的代码中的inVarsChooser)来获得单个选择器,因此变量名称构造都是正确的.但我不能让它创建多个滑块(下面的代码中的restrictRun).

你的代码是:

library(shiny)

shinyUI(navbarPage("Test",

  # Choose dataset and display variables
  tabPanel("Input Data",
           sidebarLayout(

             sidebarPanel(
               uiOutput("restrictRuns"),
               br(),
               htmlOutput("inVarsChooser")
             ),

             mainPanel(
               fileInput(inputId = "bsFilename",
                         label = "Load file (table format)",
                         accept=c('text/csv', 'text/comma-separated-values,text/plain',
                                  '.csv'),
                         width = "800px"),

               column(width = 6,
                      h4("Simulation parameters"),
                      htmlOutput("inVarsDisplay")
                      ),

               column(width = 6,
                      h4("Simulation reporters"),
                      htmlOutput("outVarsDisplay")
               )
             )
           )
  )

))
Run Code Online (Sandbox Code Playgroud)

服务器代码是:

library(shiny)

shinyServer(function(input, output, session) {

  bsData <- reactive({
    infile <- input$bsFilename
    if (is.null(infile)){
      return(NULL)      
    }
    read.csv(infile$datapath, stringsAsFactors = …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

for 循环中的多个绘图忽略 par

我正在尝试生成 10 对图,每页图有几对,并使用循环for来构造这些图对。但是,这些图会作为单独的图而不是页面发送到设备。

下面的 MWE 对于基础图形和ggplot版本具有相同的结构,但基础图形可以工作,也ggplot可以不工作。我需要做什么才能使第二个版本中的分页正确?

library(ggplot2)
attach(mtcars)

# correct configuration
par(mfrow=c(2,2))
for (ii in 1:3){
  vars <- c("wt", "disp", "wt")
  plot(get(vars[ii]), mpg)
  hist(get(vars[ii]))
}

# places each on separate plot
par(mfrow=c(2,2))
for (ii in 1:3){
  vars <- c("wt", "disp", "wt")
  p <- ggplot(mtcars, aes(get(vars[ii]), mpg)) + geom_point(size=4)
  plot(p)
  p <- ggplot(mtcars, aes(get(vars[ii]))) + geom_histogram()
  plot(p)
}

detach(mtcars)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra cowplot tidyeval

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

有效地将带时间戳的传感器数据组合到R中的事件中

底层数据集由传感器生成.每6秒钟,每个传感器发送一个信号,识别范围内的所有人(有FOB).无视人员,典型数据如下所示:

   SensorID   timestamp
     2        2015-08-04 09:56:32
     2        2015-08-04 09:56:38
     2        2015-08-05 18:45:20
     3        2015-08-04 09:54:33
     3        2015-08-04 09:54:39
     3        2015-08-04 09:57:31
     3        2015-08-04 09:58:09
     3        2015-08-04 09:58:15
     3        2015-08-04 09:58:33
     3        2015-08-04 09:58:39
Run Code Online (Sandbox Code Playgroud)

我想将此转换为具有开始和结束时间的事件,其中来自相同传感器(和fob)的连续信号被认为是相同事件的一部分,如果它们相隔小于60秒.

因此上述测试数据将转换为:

SensorID  startTime              endTime              sensorCount   duration
2         2015-08-04 09:56:32    2015-08-04 09:56:38  2             6 secs
2         2015-08-05 18:45:20    2015-08-05 18:45:20  1             0 secs
3         2015-08-04 09:54:33    2015-08-04 09:54:39  2             6 secs
3         2015-08-04 09:57:31    2015-08-04 09:58:39  5             68 secs
Run Code Online (Sandbox Code Playgroud)

我有适用的代码.

# identify the ends of sequences
lastKeep …
Run Code Online (Sandbox Code Playgroud)

r time-series sensor

4
推荐指数
2
解决办法
556
查看次数