использование rbind добавляет данные в фрейм данных, поскольку столбец не является строкой в ​​r - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу добавить эти данные в мой фрейм данных в виде строки, а не столбца.

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 показывает данные в виде столбца, а не строки.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

В вашем коде происходит то, что вы не пытаетесь связать две строки вместе.Вы связываете пустую строку с 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))

PS Вам редко приходится объявлять пустой фрейм данных.Я предполагаю, что вам нужен пустой фрейм данных для какого-то цикла действий, которые вы предпринимаете.

0 голосов
/ 21 сентября 2018

данный пример работает не очень хорошо, но допустим, у вас есть фрейм данных df, и вы хотите добавить в него строку, это будет:

df <- rbind(df, c(symbol,price_last,Momentum_Index)) 

идея состоит в том, чтобы связатьфрейм данных в vector, который вы создаете с помощью буквы c, как в c(symbol,price_last,Momentum_Index)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...