start_col:end_col 中的错误:长度为 0 的参数 - UpSetR

问题描述 投票:0回答:1

我有这样的数据集:

df <- structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40), a = c(0, 0, 
0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 
1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0), b = c(1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1), c = c(0, 
0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0), d = c(1, 
1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 
0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0), e = c(0, 
0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -40L))

我正在使用 UpSetR 来查找 a、b、c、d 和 e 之间的所有可能组合,并获得一个漂亮的图形。 这是我的代码:

library(UpSetR)
graph <- upset(df,
               sets = c("a", "b", "c", "d", "e"),
               order.by = "freq",
               empty.intersections = "on")

如您所见,如果您尝试使用此代码,会出现一条错误消息

Error in start_col:end_col : argument of length 0
In addition: There were 12 warnings (use warnings() to see them)
Warning messages:
1: In xtfrm.data.frame(x) : cannot xtfrm data frames
2: In xtfrm.data.frame(x) : cannot xtfrm data frames
3: In xtfrm.data.frame(x) : cannot xtfrm data frames
4: In xtfrm.data.frame(x) : cannot xtfrm data frames
5: In xtfrm.data.frame(x) : cannot xtfrm data frames
6: In xtfrm.data.frame(x) : cannot xtfrm data frames
7: In xtfrm.data.frame(x) : cannot xtfrm data frames
8: In xtfrm.data.frame(x) : cannot xtfrm data frames
9: In xtfrm.data.frame(x) : cannot xtfrm data frames
10: In xtfrm.data.frame(x) : cannot xtfrm data frames
11: In xtfrm.data.frame(x) : cannot xtfrm data frames
12: In xtfrm.data.frame(x) : cannot xtfrm data frames

如何解决问题?我不明白这个问题,因为这个数据集看起来与这里用作示例的“突变”数据集完全一样https://github.com/hms-dbmi/UpSetR

r dataframe combinations upsetr upsetplot
1个回答
0
投票

我解决了这个问题。似乎在导入数据集时,在使用 UpsetR 之前将它们转换为数据帧很重要,因此

as.data.frame(df)
在使用 UpsetR 的代码之前! 现在可以了。 这解释了为什么在数据集突变中代码可以正常工作

© www.soinside.com 2019 - 2024. All rights reserved.