使用rbind.fill无法填充正确的值
我想我不明白rbind.fill是怎么工作的。我有一个名为使用rbind.fill无法填充正确的值,r,dataframe,R,Dataframe,我想我不明白rbind.fill是怎么工作的。我有一个名为main.df的数据帧: TLT PCY SHY VTI TIP VNQ VWO RWX VEA DBC GLD Pct 0 0 0 0 0 0 0 0 0 0 0 我想将名为p.df的以下不同大小的数据帧绑定到它: VWO VEA VTI Pct 0.3333333 0.3333333 0.3333333 当我执行rbind.fill(
main.df的数据帧
:
TLT PCY SHY VTI TIP VNQ VWO RWX VEA DBC GLD
Pct 0 0 0 0 0 0 0 0 0 0 0
我想将名为p.df
的以下不同大小的数据帧绑定到它:
VWO VEA VTI
Pct 0.3333333 0.3333333 0.3333333
当我执行rbind.fill(main.df,p.df)
时,我得到:
TLT PCY SHY VTI TIP VNQ VWO RWX VEA DBC GLD
1 0 0 0 0 0 0 0 0 0 0 0
2 NA NA NA 1 NA NA 1 NA 1 NA NA
这不是我想要的。我希望得到:
TLT PCY SHY VTI TIP VNQ VWO RWX VEA DBC GLD
1 0 0 0 0 0 0 0 0 0 0 0
2 NA NA NA 0.333 NA NA 0.333 NA 0.333 NA NA
我该怎么做?下面是我的对象的dput
main.df <- structure(list(
TLT = 0, PCY = 0, SHY = 0, VTI = 0, TIP = 0, VNQ = 0, VWO = 0, RWX = 0, VEA = 0, DBC = 0, GLD = 0),
.Names = c("TLT", "PCY", "SHY", "VTI", "TIP", "VNQ", "VWO", "RWX", "VEA", "DBC", "GLD"),
row.names = "Pct", class = "data.frame")
p.df <- structure(list(
VWO = structure(1L, .Names = "Pct", .Label = c("0.3333333", "VWO"), class = "factor"),
VEA = structure(1L, .Names = "Pct", .Label = c("0.3333333", "VEA"), class = "factor"),
VTI = structure(1L, .Names = "Pct", .Label = c("0.3333333", "VTI"), class = "factor")),
.Names = c("VWO", "VEA", "VTI"), row.names = "Pct", class = "data.frame")
main.df如果您提供了一个使用dput(main.df)
和dput(p.df)
,则会有所帮助,但这两个对象中似乎有一个或两个包含因子向量,而不是数字向量。所以你需要转换它们
main.df[] <- lapply(main.df, function(f) as.numeric(levels(f))[f])
p.df[] <- lapply(p.df, function(f) as.numeric(levels(f))[f])
main.df[]put表明您对这些因素的看法是正确的。我在R已经被这咬了很多次了。这解决了问题。谢谢