假设我有一个包含整数子列表的向量列表。
> s #List of 2 integers
> [[1]]
> [1] 23 900 1800 42 87
> [[2]]
> [1] 54 8777 13 1 2 3
整数对应于包含字符的数据框中的行号,以“”分隔。
> origninaldf
>[1,] "Apple"
>[2,] "Apples"
>[3,] "123_Street"
我想将列表转换为新的数据帧(newdf),保留根据dataframe(orignaldf)转换为字符的子列表编号和行号。
> newdf
1 Zoo ...
2 ... ... ... Apple Apples 123_Street
谢谢! (在R中编码仍然很新)
答案 0 :(得分:0)
也许:
lapply(s, function(i) originaldf[ i[ i %in% 1:length(originaldf) ] ] )
不清楚您的意思"保留子列表编号",因为操作很少具有破坏性,并且数字不会出现在您想要的结果中。您还会显示具有不同数量元素的输出,这些元素通常需要列出或文本文件。进一步混淆是由于原始数据的输出引起的。它被显示为好像它不是数据帧而是矩阵。
s <- list(c(23, 900, 1800, 42, 87), c(54, 8777, 13, 1, 2, 3))
origninaldf <-
structure(list(nam = structure(c(2L, 3L, 1L), .Label = c("123_Street",
"Apple", "Apples"), class = "factor")), .Names = "nam", row.names = c(NA,
-3L), class = "data.frame")
> lapply(s, function(i) origninaldf[ i[ i %in% 1:length(origninaldf)] ] )
[[1]]
data frame with 0 columns and 3 rows
[[2]]
nam
1 Apple
2 Apples
3 123_Street