islands1<-islands #a named num (vector)
data.frame(island_col=names(islands1), number_col=islands1,row.names=NULL)
这将创建一个由两列组成的数据框,第一列包含命名向量中的名称,称为“island_col”,第二列包含数字并命名为“number_col”。这里没有问题。
现在假设我编写了一个函数,因为我有一堆要转换为数据帧的命名向量。每个向量都有编号,例如 island1、islands2 等。
dfunc<-function(x) data.frame(island_col=names(x), as.name(x)<-(x),row.names=NULL)
这是一个使用 data.frame 将命名向量转换为数据框的函数
firstdf<-dfunc(islands)
我在名为“islands1”的向量上使用该函数。我希望将数字列命名为“islands1”,因为这是参数的名称,但 R 不理解这一点,而是尝试评估参数本身。我尝试了使用 paste0 函数和 as.character 的变体,但无法使其正常工作。
另外,是的,我知道导致这些命名向量的所有这些可能都应该用 lapply 完成,所以我现在有一个可以使用的列表。我花了很多时间走这条路(请参阅我的另一个问题),但最终无法让它发挥作用,并且需要考虑最后期限。更一般地说,我试图更好地理解 R 如何以及何时评估参数以及如何索引对象。