R语言 为新对象使用列名[已关闭]

cczfrluj  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(81)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

6天前关闭。
Improve this question
我有一个包含5列的数据框:两个是日期-时间,其余三个包含数据。我想,使用循环或违抗函数,使用包含数据的列的名称创建3个新的数据框。下面是我拥有的列的示例:enter image description here
例如,我想创建一个新对象,每个对象都被称为11.Q.29(或者如果有一种方法可以将其与文本组合在一起,这个建议也很受欢迎!),列为Date和实际的Q,这样我就可以应用hydrotats包。问题是是否有一种方法可以告诉R这样做,或者我必须手动为每个列做?
提前感谢您的帮助!

h7appiyu

h7appiyu1#

假设你有一个类似的DataFrame:

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))]

定义每个新 Dataframe 的名称。请注意,我添加了一个前缀:

newDfName = paste("newDf", names(posData), sep="_")

然后,提取信息并使用assign为每一列创建一个 Dataframe :

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"        
>

相关问题