r - 从 r 中的数据帧中制作大小为 n/2 和 2 列的列表

标签 r list

这是数据:

myd <- data.frame (var1.1 = rnorm (10, 5,2), var1.2 = rnorm (10, 3,1),
                   varA.1 = rnorm (10, 5,2), varA.2 = rnorm (10,1,2), 
                    C.1 = rnorm (10, 3,1), C.2 = rnorm (10, 4,1))

我想创建一个大小为 3 的列表(n/2,如果 n 是数据框中变量的数量)(每个列表有两列)

mylist <- as.list (myd)

创建一个列表,其中每个变量作为组件。但我想在一个单元中创建一对变量的列表 - var1.1 和 var1.2,类似的 varA.1 和 varA.2 或 C.1 和 C.2。因此,新的列表单元各有 2 列。有什么解决办法吗?

最佳答案

我认为这会给你你想要的:

lapply(seq(2, ncol(myd), by = 2), function(i) myd[, (i-1):i])

现在假设您想通过数据框的共享变量名称来命名列表中的每个元素:

X <- lapply(seq(2, ncol(myd), by = 2), function(i) myd[, (i-1):i])
names(X) <- sapply(X, function(x){
    strsplit(names(x)[1], '\\.')[[c(1, 1)]]
})
X

关于r - 从 r 中的数据帧中制作大小为 n/2 和 2 列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11701817/

相关文章:

R Shiny - 保存单选按钮和复选框的组合输入

java - 将 List<Class> 转换为字符串 JAVAI

python-3.x - 如何将Python列表存储到Excel文件中?

python - 按字典值对字典列表进行排序

python - 为什么 `mylist[:] = reversed(mylist)` 有效?

r - 新的ion.RangeSlider给Shiny带来了哪些优势?

r - 如何在 R 中读取大型 sas7bdat 数据集?

r - (速度挑战)任何更快的方法来计算两个矩阵的行之间的距离矩阵,就欧几里德距离而言?

r - 如何获取所有行中共享和未共享的 True 和 False 的数量

python - 列表修改如何在 python 中工作