Присвойте значение новой переменной, полученной из старой - PullRequest
0 голосов
/ 05 июня 2019

Я бы хотел присвоить конкретное значение новой переменной, полученной из старой.В моем случае у меня есть это.

 $ date     : Date, format: "2018-01-05" "2018-01-06" "2018-01-07" ...
 $ price    : num  100 110 120 ...
 $ Sentiment: int  -2 3 0 ...

Я хотел бы добавить новую переменную с именем "tot_sentiment" и присвоить "отрицательное" значение, если значение переменной Sentiment является отрицательным, "положительное", если значение переменной Sentiment является положительными «нейтральный», если значение переменной Sentiment равно нулю.

ожидаемый результат:

 $ date     : Date, format: "2018-01-05" "2018-01-06" "2018-01-07" ...
 $ price    : num  100 110 120 ...
 $ Sentiment: int  -2 3 0 ...
 $ tot_sentiment: char  negative positive neutral ...

Я пробовал этот код:

new_dt<- dt %>% mutate(tot_sentiment = sum(Sentiment)....blablabla.....)

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Мы можем использовать factor, чтобы изменить уровни в столбце sign ed

df$tot_sentiment <-  factor(sign(df$b), levels = -1:1, 
       labels = c("negative", "neutral", "positive"))
df
#  a  b tot_sentiment
#1 a -2      negative
#2 b  0       neutral
#3 c  1      positive
#4 d  2      positive
#5 e -5      negative

данные

df <- data.frame(a = letters[1:5], b = c(-2, 0, 1, 2, -5))
1 голос
/ 05 июня 2019

Это можно сделать с помощью ifelse и case_when из dplyr.Тем не менее, вы можете напрямую использовать sign и устанавливать значения

df$tot_sentiment <- c("negative", "neutral", "positive")[sign(df$b) + 2]

df
#  a  b tot_sentiment
#1 a -2      negative
#2 b  0       neutral
#3 c  1      positive
#4 d  2      positive
#5 e -5      negative

data

df <- data.frame(a = letters[1:5], b = c(-2, 0, 1, 2, -5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...