我有一个像这样的数据帧:
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中做这件事吗?
答案 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。