数据框中的 R 类型 int / char 混淆

R type int / char confusion in a dataframe

我有一个 DataFrame,我从中创建了另一个 DataFrame。沿线的某个地方,事情搞砸了,但我不确定在哪里以及如何解决它。

代码在第一个数据帧上运行,所以我假设它是某种类型不匹配?我是否需要以某种方式将字段转换回字符串?

##creating the second data frame

adat2 <- data.frame(id=character(), Title=character(), Domain=character(), lemtext1=character(), Language=character(), day=character())


##copying from the first one, whilst splitting rows into multiple rows based on lemtext

for (row in 1:nrow(adat1)) {
    splitlines <- strsplit(adat1$lemtext[row], ", |\. |: |; ")[[1]]
    for (row2 in 1:NROW(splitlines)){
        adat2 <- add_row(adat2, id=adat1$id[row], Title=adat1$Title[row], Domain=adat1$Domain[row], lemtext1=splitlines[row2], Language=adat1$Language[row], day=adat1$day[row])
    }
}

##trying to work with the new dataframe

tokens <- space_tokenizer(adat2$`lemtext2`[which(((adat2$Domain=="index.hu") |
                                                   (adat2$Domain=="hvg.hu") | (adat1$Domain=="24.hu") | (adat1$Domain=="444.hu")) & 
                                                   (adat2$day>=as.Date("2018-10-13")) & (adat1$day<=as.Date("2019-10-13")))])

收到错误消息

adat1 输出:

https://www.pastiebin.com/5df253f6b79aa

adat2中,一切都是一个因素。这必须执行您创建 adat2 的方式。您需要将 stringAsFactors = FALSE 添加到 data.frame() 函数。

adat2 <- data.frame(id = character(),
                    Title = character(),
                    Domain = character(),
                    lemtext1 = character(),
                    Language = character(),
                    day = character(),
                    stringAsFactors = FALSE)

如果你现在想知道你有什么样的专栏。您应该 str(adat2) 或您可以使用的每列,例如class(adat2$id).