数据帧中的R类型int/char混淆
我有一个数据帧,我从中创建了另一个数据帧。在这条线路的某个地方,事情变得一团糟,但我不知道在哪里,以及如何修复它 代码在第一个数据帧上工作,所以我假设这是某种类型的不匹配?我是否需要以某种方式将字段转换回字符串数据帧中的R类型int/char混淆,r,dataframe,types,char,int,R,Dataframe,Types,Char,Int,我有一个数据帧,我从中创建了另一个数据帧。在这条线路的某个地方,事情变得一团糟,但我不知道在哪里,以及如何修复它 代码在第一个数据帧上工作,所以我假设这是某种类型的不匹配?我是否需要以某种方式将字段转换回字符串 ##creating the second data frame adat2 <- data.frame(id=character(), Title=character(), Domain=character(), lemtext1=character(), Language=c
##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输出:
在adat2中,一切都是一个因素。这与创建adat2的方式有关。您需要将stringAsFactors=FALSE添加到data.frame函数中
adat2 <- data.frame(id = character(),
Title = character(),
Domain = character(),
lemtext1 = character(),
Language = character(),
day = character(),
stringAsFactors = FALSE)
如果你现在想知道你有什么样的专栏。您应该跨越2列或每列,您可以使用,例如classadat2$id。我们可以使用代码,因为没有数据。你能分享adat1吗?你可以用dputadat1来做这件事,如果它很大,你可以用dputheadadat1,20。你好,我已经贴了一个doutput来感谢你的回复!有没有办法将adat2转换为正确的格式而不必再次运行整个代码?我正在处理大量数据,我的循环解决方案效率非常低,它运行了2天,哈哈,废话!您可以使用adat2$id转换每个列,循环总是很慢的,或者实际上循环中的某些内容增长很慢。如果你想继续循环,也许你可以在循环之前定义adat2的大小。非常感谢!转换位听起来应该可以做到这一点。我当然不想继续使用这个循环的解决方案,但我真的不知道如何以一种更优雅的方式来做我想做的事情。。。我会完成转换,然后回来!再次感谢你