我有一个 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) 我正在编织一个名为markdown的文件MyFile.rmd.如何MyFile在编织过程中访问字符串并将其用于:
在后续的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) 我有 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) 使用igraph包生成树作为图的子类是事实上的标准R.
包ggtree在树形可视化方面非常通用.这似乎有些绘图功能超越的capabilties 的igraph.
这导致了一个问题:
有没有办法使用igraph包生成的有效树图对象(例如下面的示例)作为可视化的输入ggtree?
library(igraph)
g <- graph.tree(20, 2)
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,我想用格子的面板点图(而不是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) 我正在寻找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) 例子:
以下闪亮的示例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 文档但陷入困境。
可再现的例子:
我描述了一个简单的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) 例:
我想并排绘制两个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)
问题:
我在将两个图并排放置时遇到问题。我试过了:
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 …
我有两个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 来运行 ABC 分析,也称为帕累托分析。ABC 分析是一个商业术语,用于定义材料管理中常用的分类技术。
每个类别没有固定的门槛,可以根据目标和标准应用不同的比例。ABC 分析类似于帕累托原则,因为“A”项目通常会占总价值的很大一部分,但只占项目数量的一小部分。