我正在使用this指南在Tableau 9.0中创建一个nework图。
要执行此操作,请调用R以创建计算字段以绘制图形的坐标。
当我加载他的示例工作簿时,它工作得很好,但是当我将他的公式应用于我自己的数据时(即使在构造完全像他的数据之后),我得到以下错误:
Error in data.frame(..., check.names = FALSE) : row names contain missing values
如果我理解正确,这是与以下代码段中的cbind参数相关的错误:
SCRIPT_STR("library(igraph); library(plyr);set.seed(123);
mydf <- data.frame(from=.arg1, to=.arg2, weight=.arg3, Order=.arg4);
mydf <-mydf[(mydf$Order=='1') & (!is.na(mydf$to)),];
mygraph <- graph.data.frame(mydf);
coords <- "+[Layout]+"(mygraph, weights=E(mygraph)$weight);
c<-cbind(coords, data.frame(users=V(mygraph)$name));
c<-cbind(c, betweenness(mygraph));
allusers <- data.frame(users=.arg5);
c<-join(allusers, c, by = 'users');
paste(c[,2],c[,3],c[,4], sep='~')",ATTR([LeadGame]),ATTR([WithGame]),SUM([BoughtTogether]),ATTR([PathOrder]), ATTR([AltGame]))
对于那些不熟悉的人,Tableau中的SCRIPT_STR通过Rserve调用R。 ATTR([LeadGame])...在最后定义了R代码中指定的五个args。
为什么这样可以完美地对他的数据起作用,但在我的上面产生上述错误?再次,结构是相同的,数字和名称是不同的。
感谢您的帮助。
答案 0 :(得分:1)
我首先要确认您的意思是c
,而不是
coords
c<-cbind(c, betweenness(mygraph));
如果不这样做,请注意以下内容
如果值names
中的cbind
中存在NA,则会出现类似错误
DF <- data.frame(A=1:5, B=rnorm(5))
names(col2) <- c('AA', 'BB', NA, 'DD', 'EE')
cbind(col2, DF)
检查names()
编辑的每个对象的cbind
值