我尝试使用现有数据框中的唯一行名创建新的数据框。
我想在" Unicos"中取名字。并使用它们来创建新的数据帧,然后在每个单独的数据帧中添加我想要的所有信息。
但显然我不知道如何做到这一点.. 有没有人有任何想法?
Unicos <- unique(df$INTERFASE)
x = 0
for (i in Unicos){
x = x + 1
Unicos[x] <- subset(TraficoPorInterfaz, INTERFASE == toString(Unicos[x]))
}
答案 0 :(得分:0)
问题在于,在for循环中,您使用数据子集覆盖Unicos
,但循环本身正在迭代Unicos
中的值。
您可以创建新的数据框并将其存储在与Unicos
一样长的列表中:
Unicos <- unique(df$INTERFASE)
new_dfs <- lapply(Unicos, function(x) subset(TraficoPorInterfaz, INTERFASE == toString(x)))
答案 1 :(得分:0)
Base R具有split
函数,该函数将根据列中的值拆分数据框。拆分数据帧会为您提供一个命名的数据帧列表,我认为这是您想要的输出。
如果没有您的数据样本,则不是肯定的,但split(df, df$INTERFASE)
应该有效。列表中的每个项目都是一个数据框,它是df
的子集,其值为df$INTERFASE
。
答案 2 :(得分:0)
创建data.frames列表,列表中的每个元素都是INTERFASE
的一个值
L = split(TraficoPorInterfaz, TraficoPorInterfaz$INTERFASE)
如果您想在全球环境中使用它们
list2env(L, envir = .GlobalEnv)