gpt4 book ai didi

r - 在了解R循环错误: unexpected '}' in “}” 方面需要帮助

转载 作者:行者123 更新时间:2023-12-03 09:03:13 24 4
gpt4 key购买 nike

只是先给一些背景知识:

我目前有2个数据框(长颈鹿,叶子),并且它们都共享“键”列,其中叶子数据框中的元素是长颈鹿的子集。我需要做的是比较两个数据帧,并且当“键”列中的两个数据帧中都有匹配的元素时,字符串“叶”将被输入到同一长颈鹿数据帧中的另一列(项目)中。行作为匹配的“键”元素。我采用了以下方法,但是似乎我在某个地方犯了一个小错误,并且在网上搜索后,我仍然不知道它是什么:
Truth_vector <- is.element((giraffe[,1]),(leaf[,1]))#返回一个包含3000个元素的 vector ,大多数情况下为FALSE,除了两个数据帧中存在“键”中的元素的位置

i=1
for (i in 1:length(giraffe[,1])) {
if Truth_vector[i] == TRUE {
giraffe[i,5] <- 'leaf'
}
i = i+1
}

Error: unexpected '}' in "}"

编辑:

我尝试将解决方案实现为功能,但是最终没有发生任何事情,也没有返回错误消息。我所做的是:
Project_assign <- function(prjct) {
Truth_vector <- is.element((giraffe[,1]),(prjct[,1]))
giraffe[which(Truth_vector),5] <- 'prjct'
}
Project_assign(leaf)

编辑:这是因为所有内容都在功能子环境中分配,而不是在全局环境中分配。使用assign('giraffe',giraffe,envir = .GlobalEnv)解决了这个问题,但是您应该尝试避免使用assign函数,而是使用for循环遍历所有数据帧的列表

最佳答案

你有几个问题。首先,if条件必须放在括号中,其次,您不需要自己增加i。这样就足够了:

for (i in 1:length(giraffe[,1])) {
if (Truth_vector[i] == TRUE) {
giraffe[i,5] <- 'leaf'
}
}

当然,这也可以做到:
giraffe[which(Truth_vector),5] <- 'leaf'

(假设Truth_vector不超过长颈鹿中的行数)

关于r - 在了解R循环错误: unexpected '}' in “}” 方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47563704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com