根据条件修改数据框的所有行,该数据框本身就是列表的元素
我有一个包含 2 个元素的列表,其中第二个元素是数据框。 如果满足条件,我想替换数据帧之一列的所有值 则要更改其值的变量称为“CODE_PAYS_LIV”
如果“CODE_PAYS_LIV”列中的值属于以下列表的元素, : c("AT","BE", "CH", "CZ", "DE", "DK","ES", "FR", "GB", "HR", "HU", "IE", “IT”,“NL”,“NO”,“PL”,“PT”,“SE”,“SI”,“SK”))
必须更改为“EUR”
我尝试将这些更改更改为两个不同的方法(没有成功) 直接调用函数,或使用 lapply 来应用函数
我首先定义一个函数来测试条件是否为真
modif_res_veh <-function(fichier_veh) {
ii<-1
nb_mesh <- nrow(fichier_veh)
for (ii in 1:nb_mesh) {
if (fichier_veh$CODE_PAYS_LIV %in% c("AT","BE" , "CH" , "CZ" , "DE" , "DK" , "ES" , "FR"))
{fichier_veh$CODE_PAYS_LIV <- "EUR" }
}
}
,然后我尝试调用此函数
<>第一次测试使用: Res_vehicule [[2]] <- modif_res_veh(Res_vehicule [[2]])
this gives me a list of 1 empty element
<>;使用以下命令进行第二次测试:
Res_vehicule <- lapply(Res_vehicule[[2]] ,modif_res_veh)
but i have this error message :
1:nb_mesh 中的错误:长度为 0 的参数
<>第三次测试通过将数据帧的行数作为函数的参数传递:
modif_res_veh <-function(fichier_veh, nb_mesh) {
ii<-1
for (ii in 1:nb_mesh) {
if (fichier_veh$CODE_PAYS_LIV %in% c("AT","BE" , "CH" , "CZ" , "DE" , "DK" , "ES" , "FR"))
{fichier_veh$CODE_PAYS_LIV <- "EUR" }
}
}
nb_mesh <- nrow(Res_vehicule [[2]])
Res_vehicule [[2]] <- modif_res_veh(Res_vehicule [[2]],nb_mesh)
but this gives me a list of 1 empty element again
非常感谢您的帮助
I have a list of 2 elements whose second is a dataframe.
I want to replace for all values of one of the columns of the dataframe, if a condition is met
the variable whose values are to be changed is called "CODE_PAYS_LIV"
If the value in column "CODE_PAYS_LIV" belongs to an element of the following list :
c("AT","BE" , "CH" , "CZ" , "DE" , "DK" ,"ES" , "FR" , "GB" , "HR" , "HU" , "IE" ,
"IT" , "NL" , "NO" , "PL" , "PT" , "SE" , "SI" , "SK"))
it have to be change to "EUR"
I have tried making these changes two different ways (without success)
directly calling a function, or using lapply to apply the function
I started by defining a function that tests if the condition is true
modif_res_veh <-function(fichier_veh) {
ii<-1
nb_mesh <- nrow(fichier_veh)
for (ii in 1:nb_mesh) {
if (fichier_veh$CODE_PAYS_LIV %in% c("AT","BE" , "CH" , "CZ" , "DE" , "DK" , "ES" , "FR"))
{fichier_veh$CODE_PAYS_LIV <- "EUR" }
}
}
and then I have tried ti call this function
<> First test by using :
Res_vehicule [[2]] <- modif_res_veh(Res_vehicule [[2]])
this gives me a list of 1 empty element
<> second test by using :
Res_vehicule <- lapply(Res_vehicule[[2]] ,modif_res_veh)
but i have this error message :
Error in 1:nb_mesh : argument of length 0
<> third test by passing the number of rows of the dataframe as a parameter of the function :
modif_res_veh <-function(fichier_veh, nb_mesh) {
ii<-1
for (ii in 1:nb_mesh) {
if (fichier_veh$CODE_PAYS_LIV %in% c("AT","BE" , "CH" , "CZ" , "DE" , "DK" , "ES" , "FR"))
{fichier_veh$CODE_PAYS_LIV <- "EUR" }
}
}
nb_mesh <- nrow(Res_vehicule [[2]])
Res_vehicule [[2]] <- modif_res_veh(Res_vehicule [[2]],nb_mesh)
but this gives me a list of 1 empty element again
thank you very much for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种选择:
one option: