这应该很简单;但是,我做对了。 我得到了以下列表:
list <- list(c("sofa", "couch"),
c("fridge"),
c("desk", "table", "brown"),
c("window", "clean"),
c("speaker"))
我正在尝试将其转换为以下格式(作为数据框)
table <- data.frame(word = c("sofa", "couch", "fridge", "desk", "table", "brown", "window", "clean", "speaker"),
label = c("sofa couch", "sofa couch",
"fridge",
"desk table brown", "desk table brown", "desk table brown",
"window clean",
"window clean",
"speaker"))
我创建了这个对我有意义的循环,但它不起作用。我不知道为什么或者这是否是最好的方法
table <- data.frame(word = character(), label = character(), stringsAsFactors = FALSE)
value <- 0
for(i in 1:length(list)){
for(j in 1:length(list[[i]])){
value <- c(list[[i]][j], str_c(list[[i]], collapse = " "))
table <- rbind(table, value)
}
}
最佳答案
另一个选项是stack
stack(setNames(list, sapply(list, paste, collapse = " ")))
# values ind
#1 sofa sofa couch
#2 couch sofa couch
#3 fridge fridge
#4 desk desk table brown
#5 table desk table brown
#6 brown desk table brown
#7 window window clean
#8 clean window clean
#9 speaker speaker
关于r - 循环以在 r 中使用相应的值来标记标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60951713/