【发布时间】:2018-11-09 15:33:41
【问题描述】:
我想用在另一个数据帧(结果,40 行)中找到的值替换某个数据帧(driftm,4 列,69042 行)的一列(分数)的条目。
我的想法是这样的:
driftm$Fraction[i] <-
as.vector((results$Fraction[match((driftm$variable[i]), (results$WorkingCode))]))
我检查的变量 (drift$variable) 是一个因素,因此我将其转换为向量。当手动将 i 设置为driftm$value 长度内的任何值时,代码会工作并相应地替换。但在 for 循环中它什么也不做。
for (i in length(driftm$values)){
driftm$Fraction[i] <-
as.vector((results$Fraction[match((driftm$variable[i]), (results$WorkingCode))]))
}
This is the dataframe driftm This is the dataframe results
所以基本上我想替换,现在写为“替换”的内容为所述分数的正确字符串,取自 results$Fraction。
有什么更优雅的方法可以做到这一点?
【问题讨论】:
-
需要更多
as.character可能... -
是的,不是很优雅 xD 改了,还是不行
-
所以,据我所知,您的主 df
driftm中有 40 行,您想用结果中的内容替换它们吗?您可以在driftm中创建您想要替换并使用它而不是此解决方案的行的索引吗?如果您向我们提供数据样本(您要替换的几行、不想替换的几行以及结果中的几行),将会很有帮助。 -
使用 for 循环并不是一种优雅的方式。但抛开这一点不谈,我们需要一些样本数据,以便我们可以验证错误并进行故障排除。
-
否,结果中有 40 行。结果在 match() 函数中使用,我想在其中找到与driftm$Fraction 相同的条目。 driftm$fraction 中有 69042 行,但其中的值仅在结果中找到的值的空间中。