Будет ли это работать?
library(igraph)
library(data.table)
test_a2 <- data.frame(col1 = c("A","Z","K","J"),
col2 = c("B","A","L","H"),
col3 = c("C","C","M",""),
col3 = c("","Y","B",""), stringsAsFactors=FALSE)
test_a2[test_a2 ==""] <- NA
test_a3 <- na.omit(rbindlist(lapply(seq(ncol(test_a2)-1), function(i) test_a2[i:(i+1)])))
plot(graph.data.frame(test_a3))][1]][1]
Одно замечание об этом подходе: граф не будет содержать вершин, которые не связаны ни с чем, кроме «пустых» ячеек. Если вам нужно включить их, вы можете добавить их позже.