小编use*_*503的帖子

导入 csv 文件数据以填充 Prolog 知识库

我有一个 csv 文件example.csv,其中包含带有标题 var1 和 var2 的两列。

在此处输入图片说明

我想import.pl用重复的事实填充最初为空的 Prolog 知识库文件,而每一行的example.csv处理方式相同:

fact(A1, A2).
fact(B1, B2).
fact(C1, C2).
Run Code Online (Sandbox Code Playgroud)

我如何在 SWI-Prolog 中对此进行编码?

编辑,基于@Shevliaskovic 的回答

:- use_module(library(csv)).
import:-
    csv_read_file('example.csv', Data, [functor(fact), separator(0';)]),
    maplist(assert, Data).
Run Code Online (Sandbox Code Playgroud)

import.在控制台中运行时,我们完全按照请求的方式更新知识库(除了知识库直接在内存中更新,而不是通过文件和后续咨询来更新)。

检查setof([X, Y], fact(X,Y), Z).

Z = [['A1', 'A2'], ['B1', 'B2'], ['C1', 'C2'], [var1, var2]].
Run Code Online (Sandbox Code Playgroud)

csv prolog swi-prolog

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

访问.rmd文件的名称并在R中使用

我正在编织一个名为markdown的文件MyFile.rmd.如何MyFile在编织过程中访问字符串并将其用于:

  • 在YAML标题的标题部分使用?
  • 在后续的R chunk中使用?

    ---
    title: "`r rmarkdown::metadata$title`"
    author: "My Name"
    date: "10. Mai 2015"
    output: beamer_presentation
    ---
    
    ## Slide 1
    
    ```{r}
    
    rmarkdown::metadata$title
    
    ```
    
    Run Code Online (Sandbox Code Playgroud)

导致...

在此输入图像描述

...这是不正确的,因为我编织的文件名称不同.

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)

locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] digest_0.6.8    htmltools_0.2.6 rmarkdown_0.5.1 tools_3.1.2     yaml_2.1.13
Run Code Online (Sandbox Code Playgroud)

markdown r knitr

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

Graph.union 求和边权重属性 (igraph R)

我有 2 张图表,带有重量标签:

library(igraph)

g1= graph.formula(A -+ B, A -+ C)
E(g1)["A" %->% "B"]$weight= 1
E(g1)["A" %->% "C"]$weight= 2
E(g1)$label= E(g1)$weight

g2= graph.formula(A -+ B, A -+ C, A -+ D)
E(g2)["A" %->% "B"]$weight= 10
E(g2)["A" %->% "C"]$weight= 20
E(g2)["A" %->% "D"]$weight= 100
E(g2)$label= E(g2)$weight

par(mfrow= c(2,1), mar= rep(0,4))
plot(g1); plot(g2)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

加入两者时graph.union()igraph默认情况下会创建weight_1, weight_2属性。

问题:

我希望连接图具有汇总的边权重属性。应用现有的SO 答案不是最佳的。首先,在graph.union()创建更多weight_...属性的情况下,该解决方案不能很好地扩展。其次,在可重现示例的情况下,它仅导致部分解决方案,因为边缘不"A" "D"包含总和。

g= graph.union(g1, g2)
E(g)$weight= E(g)$weight_1 + E(g)$weight_2
E(g)$label= E(g)$weight …
Run Code Online (Sandbox Code Playgroud)

r igraph

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

用ggtree绘制igraph树对象

使用igraph包生成树作为图的子类是事实上的标准R.

ggtree在树形可视化方面非常通用.这似乎有些绘图功能超越的capabilties 的igraph.

这导致了一个问题:

有没有办法使用igraph包生成的有效树图对象(例如下面的示例)作为可视化的输入ggtree

library(igraph)
g <- graph.tree(20, 2)
Run Code Online (Sandbox Code Playgroud)

r igraph

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

格点dotplot条件填充颜色

问题:

我有一个数据框,我想用格子的面板点图(而不是ggplot2)可视化.它包含一个变量,应该有条件地使用它来通过不同的颜色填充来突出显示数据.

可重复的例子:

require(lattice)

# Make reproducable data frame
df= mtcars
df= cbind(car = rownames(df), df) 
rownames(df)= NULL
df=df[1:5, c("car", "mpg", "cyl", "carb")]

df
# output:
#                car  mpg cyl carb
#         Mazda RX4 21.0   6    4
#     Mazda RX4 Wag 21.0   6    4
#        Datsun 710 22.8   4    1
#    Hornet 4 Drive 21.4   6    1
# Hornet Sportabout 18.7   8    2

# I am interested to highlight those data which have carb=1
df[df$carb==1,]

#            car  mpg cyl carb …
Run Code Online (Sandbox Code Playgroud)

plot r lattice

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

组合部分和

我正在寻找R一个函数partial.sum(),它接受一个数字向量并返回所有部分和的升序排序向量:

test=c(2,5,10)
partial.sum(test)

# 2 5 7 10 12 15 17
## 2 is the sum of element 2
## 5 is the sum of element 5    
## 7 is the sum of elements 2 & 5    
## 10 is the sum of element 10    
## 12 is the sum of elements 2 & 10    
## 15 is the sum of elements 5 & 10
## 17 is the sum of elements 2 & 5 & …
Run Code Online (Sandbox Code Playgroud)

numbers r combinatorics

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

在R中运行Racket代码

有没有办法从R(R脚本调用球拍代码)运行球拍代码?

我看着Rseek和其他来源,没有任何指示.

r racket

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

闪亮的 selectizeInput 具有“一次性删除全部”功能

例子:

以下闪亮的示例app.R文件包含一个selectizeInputUI。可以使用 删除选定的元素options = list(plugins= list('remove_button'))

在此输入图像描述

library(shiny)
library(dplyr)

ui= fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectizeInput(inputId= "cyl", label= "cyl", 
                     choices= sort(unique(mtcars$cyl)), 
                     selected= sort(unique(mtcars$cyl)),
                     multiple=T,
                     options = list(plugins= list('remove_button')))
    ),
    mainPanel(
      tableOutput("tab")
    )
  )
)

server= function(input, output) {
  df_filtered= reactive({
    mtcars %>%
    {if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)}
  })
  output$tab= renderTable(df_filtered())
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

问题:

是否有一个可以在shiny中访问的selectize.js选项,它添加了“一次删除全部”功能,而不是示例中所示的“逐一删除”功能?

我研究了selectize.js 文档但陷入困境。

r shiny selectize.js

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

使用lpSolveAPI获得0/1-Knapsack MILP的多种解决方案

可再现的例子:

我描述了一个简单的0/1-背包问题lpSolveAPIř,它应该返回2级的解决方案:

library(lpSolveAPI)

lp_model= make.lp(0, 3)
set.objfn(lp_model, c(100, 100, 200))
add.constraint(lp_model, c(100,100,200), "<=", 350)
lp.control(lp_model, sense= "max")
set.type(lp_model, 1:3, "binary")

lp_model
solve(lp_model)
get.variables(lp_model)
get.objective(lp_model)
get.constr.value((lp_model))
get.total.iter(lp_model)
get.solutioncount(lp_model)
Run Code Online (Sandbox Code Playgroud)

问题:

get.solutioncount(lp_model)表明1找到了解决方案:

> lp_model
Model name: 
           C1   C2   C3         
Maximize  100  100  200         
R1        100  100  200  <=  350
Kind      Std  Std  Std         
Type      Int  Int  Int         
Upper       1    1    1         
Lower       0    0    0         
> solve(lp_model)
[1] 0
> get.variables(lp_model)
[1] 1 …
Run Code Online (Sandbox Code Playgroud)

r linear-programming constraint-programming lpsolve

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

并排绘制2个tmap对象

例:

我想并排绘制两个tmap图,这些图是由此代码生成的。

library(tmap)
library(gridExtra)

data(World)

plot1=
  tm_shape(World, projection = "merc") + 
  tm_layout("", inner.margins=c(-1.72, -2.05, -0.75, -1.56)) +
  tm_borders(alpha = 0.3, lwd=2)

plot2=
  tm_shape(World, projection = "merc") + 
  tm_layout("", inner.margins=c(-1.72, -2.05, -0.75, -1.56)) +
  tm_borders(alpha = 0.3, lwd=2)
Run Code Online (Sandbox Code Playgroud)

plot1并且plot2可以作为单个独立地块正常工作: 在此处输入图片说明

问题:

我在将两个图并排放置时遇到问题。我试过了:

grid.arrange(plot1, plot2)通过一个错误Error in arrangeGrob(..., as.table = as.table, clip = clip, main = main, : input must be grob!。我认为这应该可行(使用gridExtra),因为tmap似乎基于grid graphics system

par(mfrow=c(1,2))不起作用,因为它仅显示一个图(猜想这是相关的,因为tmap图不遵循base …

graphics r choropleth tmap

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

igraph 对象的并集丢失属性

我有两个igraph对象,它们具有不同的颜色属性。第一张图中的顶点"A""B"被涂成红色。第二张图中的顶点"AA""BB"为绿色。两者结合后,不同的颜色就消失了。

library(igraph)

graph.1= graph.data.frame(data.frame(start=c("a", "b"), end=c("A", "B")))
V(graph.1)[name%in% c("A", "B")]$color= "red"

graph.2= graph.data.frame(data.frame(start=c("a", "b"), end=c("AA", "BB")))
V(graph.2)[name%in% c("AA", "BB")]$color= "green"

graph= graph.union.by.name(graph.1, graph.2)

plot(graph)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

加入时如何保留独特的颜色?

r igraph

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

如何在 R 中执行 ABC 分析?

我希望使用 R 来运行 ABC 分析,也称为帕累托分析。ABC 分析是一个商业术语,用于定义材料管理中常用的分类技术。

每个类别没有固定的门槛,可以根据目标和标准应用不同的比例。ABC 分析类似于帕累托原则,因为“A”项目通常会占总价值的很大一部分,但只占项目数量的一小部分。

r

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