【发布时间】:2017-01-30 17:45:23
【问题描述】:
我在 R 中有一个名为 Cell.Arrangement 的列表,其中包含 9 种不同的单元格排列类型。我试图用数字 1-9 替换这些排列,同时为了通过神经网络拟合它们,但我需要保留数字对应的索引,以便可以读取输出。
列表的前几个元素是这样的:
[[1]]
[1] "Chains" "Pairs" "Singles"
[[2]]
character(0)
[[3]]
character(0)
[[4]]
character(0)
[[5]]
[1] "Singles"
[[6]]
[1] "Tetrad"
...而期望的结果是这样的...
[[1]]
[1] 1 2 3
[[2]]
character(0)
[[3]]
character(0)
[[4]]
character(0)
[[5]]
[1] 1
[[6]]
[1] 4
...每个单元格排列分类对应一个数字,但可以匹配回来。
我有以下代码,但它不是用整个列表中的唯一编号替换排列,而是用每个元素中的唯一编号替换排列,因此不同的排列匹配相同的编号...
RL_AR <- function(x){
if(length(levels(factor(Data$Cell.Arrangement[[x]]))) > 0){
as.vector(factor(Data$Cell.Arrangement[[x]], labels = c(1:length(Data$Cell.Arrangement[[x]]))))
}else{
as.vector(factor(Data$Cell.Arrangement[[x]], labels = ''))
}
}
AR.Index <- data.frame(unique(unlist(Data$Cell.Arrangement)))
有什么建议吗?谢谢!
【问题讨论】:
-
您的列表似乎没有名称,所以我不确定您所说的“同时保留原始名称”是什么意思。你能显示你正在寻找的输出吗?与
dput()共享您的数据也很好,因此可以复制/粘贴。您可以在帖子中添加dput(head(your_list))吗? -
意外提交的问题。现在已经完成,显示的是实际列表而不是 dput()
-
是的,您能否将
dput添加到您的问题中,以便更容易重现?您是否已经在单元格排列分类和数字之间进行了查找匹配?还是创建您所说的“保留原始名称”? -
最后,如果您要将所有字符串转换为整数,您确定要在空元素中使用
character(0)而不是integer(0)或numeric(0)?