【发布时间】:2022-01-19 08:54:27
【问题描述】:
假设我有一个包含 3 个元素的列表 x、y 和 z。每个列表中的列都是double 类型。有没有一种快速的方法可以将所有的列转换为字符串?
dput(mylist)
list(structure(list(Age = c(1L, 1L, 2L, 3L, 4L, 5L), Year = c(10L,
11L, 10L, 11L, 10L, 12L)), class = "data.frame", row.names = c(NA,
-6L)), structure(list(Age = c(1L, 1L, 2L, 3L, 4L, 5L), Year = c(12L,
14L, 10L, 11L, 5L, 12L)), class = "data.frame", row.names = c(NA,
-6L)), structure(list(Age = c(1L, 1L, 2L, 3L, 4L, 5L), Year = c(12L,
14L, 10L, 11L, 5L, 12L)), class = "data.frame", row.names = c(NA,
-6L)))
我用lapply 尝试了各种方法,但都做不到。
【问题讨论】:
-
试试
lapply(mylist, function(i) {i[] <- lapply(i, as.character); i}) -
而且,只是提供第二种选择:
lapply(mylist, lapply, as.character) |> lapply(data.frame)。 -
@Sotos 第一个答案效果很好。