【发布时间】:2016-01-27 13:55:19
【问题描述】:
如何为初始数据帧(包含列 p1 到 ps)中的 s 个变量创建一个包含比例 p1 到 ps 的矩阵 P
这是一个 R 问题。我有一个包含变量 p1 的数据框 到 ps 以及其他变量。我想为 变量 p1 到 ps 从数据帧到矩阵 P 用于其他 例行公事。当我知道列数时,我可以很容易地做到这一点 s(在下面提供的示例中,s = 5)使用下面的代码(测试 对于五列示例,数据位于数据框 ALL_test 中)。
以下代码读取示例数据帧 ALL_test。
ALL_test <- data.frame(
x = c(50,75,45), p1 = c(1, 0, 0), p2 = c(0, .4, .1), p3 = c(0, .2, .3),
p4 = c(0, .4, .1), p5 = c(0, 0, .5)
)
P <- with(ALL_test, cbind(p1, p2, p3, p4, p5))
colnames(P)<- c("p1","p2","p3","p4","p5")
输出 P 表明该解决方案在基于 在 s 的已知值 5 上,我希望的列数 转移到矩阵 P。
我想在我提供“s”的地方开发将返回的代码
矩阵 P 中的 s 列。
对这篇文章的第一个回复给了我一个包含名字的列表
p1 到 ps 但我看不到如何使用它来提取列
数据帧中的 p1 到 p5。
我知道这可能是微不足道的,但我无法对其进行排序。
我已经尝试过(所有这些都只是将 p1 字符串提供给 ps)
s <- 5
nam1 <- paste("p", 1:s, sep = "", collapse = ", ")
nam1 # this returns "p1, p2, p3, p4, p5"
cat(nam1, "\n") # returns p1, p2, p3, p4, p5 but this does not work in
P <- with(ALL, cbind(cat(nam1, "\n")))
【问题讨论】:
-
请阅读this,同时请记住,在 SO 上发布问题时,您需要添加您使用的语言标签。