为新对象使用列名
Use column names for a new object
我有一个包含 5 列的数据框:两列是日期时间,其余三列包含数据。我想使用循环或违抗函数,使用包含数据的列的名称创建 3 个新数据框。
这是我拥有的专栏的示例:
enter image description here
因此,例如我想创建一个新对象,每个对象都称为 11.Q.29
(或者如果有办法将其与文本结合起来,也欢迎提出建议!),列日期和实际的 Q,以便我可以应用 hydrostats 包。问题是是否有办法告诉 R 去做,或者我必须为每一列手动做?
提前感谢您的帮助!
假设你有一个类似的数据框:
testing <- as.data.frame(matrix(sample(1:100, 60, replace=TRUE), ncol=6))
names(testing) = c("date", "time", "10.Q.29", "10.Q.30", "10.Q.36", "10.Q.63")
如您所说,您想为特定列创建数据框。在这种情况下,目标是从第三到第六。
一种方法是只提取您想要的列:
posData = testing[,c(3:ncol(testing))]
定义每个新数据框的名称。请注意,我添加了一个前缀:
newDfName = paste("newDf", names(posData), sep="_")
然后,提取信息并使用
assign
:
for (i in 1:ncol(posData))
{
tmpDf = as.data.frame(posData[,i])
assign(newDfName[i], tmpDf)
}
您可以使用 ls()
:
查看结果
> ls()
[1] "i" "newDf_10.Q.29" "newDf_10.Q.30" "newDf_10.Q.36" "newDf_10.Q.63" "newDfName"
[7] "posData" "testing" "tmpDf"
>
我有一个包含 5 列的数据框:两列是日期时间,其余三列包含数据。我想使用循环或违抗函数,使用包含数据的列的名称创建 3 个新数据框。 这是我拥有的专栏的示例: enter image description here
因此,例如我想创建一个新对象,每个对象都称为 11.Q.29
(或者如果有办法将其与文本结合起来,也欢迎提出建议!),列日期和实际的 Q,以便我可以应用 hydrostats 包。问题是是否有办法告诉 R 去做,或者我必须为每一列手动做?
提前感谢您的帮助!
假设你有一个类似的数据框:
testing <- as.data.frame(matrix(sample(1:100, 60, replace=TRUE), ncol=6))
names(testing) = c("date", "time", "10.Q.29", "10.Q.30", "10.Q.36", "10.Q.63")
如您所说,您想为特定列创建数据框。在这种情况下,目标是从第三到第六。
一种方法是只提取您想要的列:
posData = testing[,c(3:ncol(testing))]
定义每个新数据框的名称。请注意,我添加了一个前缀:
newDfName = paste("newDf", names(posData), sep="_")
然后,提取信息并使用
assign
:
for (i in 1:ncol(posData))
{
tmpDf = as.data.frame(posData[,i])
assign(newDfName[i], tmpDf)
}
您可以使用 ls()
:
> ls()
[1] "i" "newDf_10.Q.29" "newDf_10.Q.30" "newDf_10.Q.36" "newDf_10.Q.63" "newDfName"
[7] "posData" "testing" "tmpDf"
>