我想将此数据作为一行而不是一列添加到我的数据框中。
df = data.frame('symbol'= character(0), 'price_last'= integer(0),
'Momentum_Index'= integer(0))
symbol = 'ABC'
price_last = 219
Momentum_Index = 96
df <- rbind(df,symbol,price_last,Momentum_Index)
df将数据显示为列而不是行。我在做什么错了?
答案 0 :(得分:1)
您的代码中发生的事情是您没有试图将两行绑定在一起。您正在将空行与3个不同的对象绑定在一起。 rbind
猜测那些对象是同一列的一部分,因为没有一个对象具有列名属性(因此,它们应该进入的列是NA),并且最终所有内容都在同一列中。>
df = data.frame('symbol'= character(0), 'price_last'= integer(0),
'Momentum_Index'= integer(0))
symbol = 'ABC'
price_last = 219
Momentum_Index = 96
df <- rbind(df,symbol,price_last,Momentum_Index)
# c..ABC....219....96..
# 1 ABC
# 2 219
# 3 96
相反,您需要将要绑定的数据设置为行格式,其中数据的每一列都具有列名属性:
df1 = data.frame('symbol'= character(0), 'price_last'= integer(0),
'Momentum_Index'= integer(0))
df2 = df = data.frame('symbol'= 'ABC', 'price_last'= 219,
'Momentum_Index'= 96)
df <- rbind(df1,df2)
# symbol price_last Momentum_Index
# 1 ABC 219 96
您的代码有一个最终的问题,这里不会有问题,但是将来会成为您的问题。您使用的是左引号'<object>'
,而不是右引号。在您的情况下,您可以将单引号保留在列名之外,也可以将左引号更改为右引号。如果您要尝试使用my column name = character()
之类的列名来命名一个带有空格的列,则这一点很重要。右引号位于波浪号(〜)键上方。
更正确的引号示例:
df1 = data.frame(symbol= character(0), price_last= integer(0),
Momentum_Index= integer(0))
df1 = data.frame(`symbol`= character(0), `price_last`= integer(0),
`Momentum_Index`= integer(0))
P.S。您很少需要声明一个空的数据框。我假设您需要空的数据框来执行某种循环操作。
答案 1 :(得分:-1)
给定的示例不能很好地工作,但是假设您有一个数据框df,并且想要向其添加一行,它将是:
df <- rbind(df, c(symbol,price_last,Momentum_Index))
想法是将数据框绑定到使用字母vector
创建的c
如c(symbol,price_last,Momentum_Index)