我第一次在R中尝试遍历数据文件以进行分析并将输出写入文件。这是我的代码:
{
"query": {
"bool": {
"should": [
{
"terms_set": {
"tags.all": {
"terms": [ 9, 8 ],
"minimum_should_match_script": {
"source": "2"
}
}
}
},
{
"terms": {
"tags.id": {
"value": [ 9, 8 ],
"boost": 2
}
}
}
]
}
}
}
运行此命令时,没有错误,但是analysis-output.txt仅包含cat函数的输出,即
create or replace function test()
returns void as $$
import numpy as np;
import pandas as pd;
a=np.matrix([[1,2,3],[4,5,6],[7,8,9],[0,0,0]]);
r,c=a.shape;
df=pd.DataFrame(data=a,index=np.array(range(1, r+1)),columns=np.array(range(1, c+1)))
$$language plpython2u;
但是,当我像这样自行运行循环内部的代码时
# load packages igraph, dils, sna
sink('analysis-output.txt')
for (week in c("002","003","004","005","006")) {
cat("*** ",week,"\n")
obs <- read.table(paste(week,"obs.txt",sep="-"),sep="\t", header=FALSE)
per <- read.table(paste(week,"per.txt",sep="-"),sep="\t", header=FALSE)
n <- length(obs)
mper <- AdjacencyFromEdgelist(per, check.full = TRUE)
mobs <- AdjacencyFromEdgelist(obs, check.full = TRUE)
g<-array(c(mper[[1]],mobs[[1]]),c(n,n,2))
q<-qaptest(g,gcor,g1=1,g2=2)
summary(q)
}
sink()
我确实在输出文件中获得了摘要结果:
*** 002
*** 003
*** 004
*** 005
*** 006
我在做什么错了?
答案 0 :(得分:2)
sink
将控制台输出转移到文件,因此数据需要由R输出以显示在文件中。我认为所缺少的是,在一个循环中,您需要显式print
的输出summary
以使其出现在控制台中(并因此由接收器编写)。
比较这两个循环的控制台输出:
for (i in 1:5) {
print(summary(cars))
}
将结果打印到控制台
for (i in 1:5) {
summary(cars)
}
不打印到控制台