在Julia中连接数据框DataFrame

4

当我尝试将行数不同但列相同的多个DataFrames(该数据结构来自DataFrames软件包!)连接在一起时,出现了问题。 这是我的代码:

using(DataFrames)
DF = DataFrame()
DF[:x1]   = 1:1000
DF[:x2]   = rand(1000)
DF[:time] = append!( [0] , cumsum( diff(DF[:x1]).<0 ) ) + 1



DF1 = DF[DF[:time] .==1,:]
DF2 = DF[DF[:time] .==round(maximum(DF[:time])),:]
DF3 = DF[DF[:time] .==round(maximum(DF[:time])/4),:]
DF4 = DF[DF[:time] .==round(maximum(DF[:time])/2),:]

DF1[:T] = "initial"
DF2[:T] = "final"
DF3[:T] = "1/4"
DF4[:T] = "1/2"

DF = [DF1;DF2;DF3;DF4]

最后一行让我出现了错误。
MethodError: Cannot `convert` an object of type DataFrames.DataFrame to an object of type LastMain.LastMain.LastMain.DataFrames.AbstractDataFrame
This may have arisen from a call to the constructor LastMain.LastMain.LastMain.DataFrames.AbstractDataFrame(...),
since type constructors fall back to convert methods.

我不理解这个错误信息。你能帮我解决一下吗?谢谢!

你使用的是哪个版本的Julia?在我的机器上(Julia 0.5.0,Fedora 25)运行得很好。 - Alexander Morley
嗨,我也是版本0.5.0,但在x86_64-apple-darwin13.4.0上。我会在我的Linux机器上尝试它。 - user7295926
我刚刚在我的苹果电脑上重试了一下,现在它可以工作了。尽管我昨天重新启动了Julia并能够重现错误,但现在它已经消失了。不确定为什么。 - user7295926
1个回答

3

我在使用Julia 0.5.0 x86_64-linux-gnu和DataFrames 0.8.5时遇到了完全相同的问题,涉及hcatvcat。清空工作区或重新加载DataFrames都无法解决问题,但是重新启动REPL立即解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接