搜索数据框中的术语并返回值

时间:2017-02-21 13:22:26

标签: r

我有一个像这样的数据帧:

word;Positive-Polarity;Negative-Polarity
un dos;0;0
abaque;0;0
abandonner;0;1
abandonné;0;1
abandon;0;1
se calmer;0;0
...

我正在尝试做一个输入一个单词并返回极性值(正极性或负极性)的函数。

你可以帮我在R中做这件事吗?

2 个答案:

答案 0 :(得分:1)

writeLines("word;Positive-Polarity;Negative-Polarity
un dos;0;0
abaque;0;0
abandonner;0;1
abandonné;0;1
abandon;0;1
se calmer;0;0","data.csv")

data <- read.csv("data.csv",sep=";")

get_pol <- function(word,type,data)
{
    if(type=="positive") return(data$Positive.Polarity[data$word==word])
    if(type=="negative") return(data$Negative.Polarity[data$word==word])
}

get_pol("abandon","positive",data)

get_pol("abandon","negative",data)

答案 1 :(得分:1)

诀窍是融化您的data.frame。我使用data.table中的那个,但你也可以使用reshape2。

ssh-keygen
[enter]
[enter]
[enter]

cd ~/.ssh
ssh-copy-id -i id_rsa.pub USERNAME@SERVERTARGET

然后获取值就像:

df <- data.frame(word = c("a", "b", "c"), pos = c(0,0,1), neg = c(0, 1, 0))

library(data.table)
dt <- setDT(df)
dt <- melt(df, id.vars = "word")

我们限制价值&gt; 0,因为那样我们将得到正极性或负极性,或者根本不得,如果两者都是0。