我想将给定的函数应用于dataframe的每一行,并使用另一行的值作为输入参数/参数:

Model <- c("H5", "H5", "H5","H4")
Length <- c(6, 6, 6, 6)
Code <- c("030299", "010121","030448","030324")

df <- data.frame(Model,Length,Code)


Model   Length   Code
HS5       6     030299
HS5       6     010121
HS5       6     030448
HS4       6     030324

我想对每一行应用以下代码,并将结果生成为一个新列

Library(concordance)

concord(sourcevar = (each row of 'Code' column), origin = as.character(character in 'Model' column) , destination = "HS4", dest.digit = as.numeric(number in 'Length' column), all = F))

Documentation页第6页

推荐答案

您可以在行中使用apply(MARGIN = 1).

apply(df, MARGIN = 1, function(x) concord(sourcevar = x[3], origin = x[1], destination = "HS4", dest.digit = x[2], all = F))

但是,这不起作用,因为"HS4"和"HS4"之间没有转换字典,所以只能在非HS4的行上使用apply:

df$New <- df$Code
df[df$Model != "HS4", ]$New <- apply(df[df$Model != "HS4", ], 1, \(x) concord(sourcevar = x[colnames(df) == "Code"], 
                                               origin = x[colnames(df) == "Model"], destination = "HS4", 
                                               dest.digit = x[colnames(df) == "Length"], all = F))

  Model Length   Code    New
1   HS5      6 030299 030289
2   HS5      6 010121 010121
3   HS5      6 030448 030449
4   HS4      6 030324 030324

R相关问答推荐

如何在R中描绘#符号?

给定开始日期和月份(数字),如何根据R中的开始日期和月数创建日期列

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

停止ggplot将多行减少到一行

从数据创建数字的命名列表.R中的框

如何提取R中其他字符串和数字之间的字符串?

计算使一组输入值最小化的a、b和c的值

无法将条件case_when()应用于使用!!创建的新变量Mutations

删除在R中的write.table()函数期间创建的附加行

如何在使用因子时获得Sankey图的Scale_Fill_Viridis的全范围

如何使投篮在R中保持一致

网络抓取NBA.com

删除列表中的奇数长度元素

Echarts4rBox函数似乎无法识别变量

调整shiny 仪表板侧边栏中的文本位置

如何根据索引将R中的列表设置为子集?

如何计算沿SF线到给定点的距离?

R函数的多个类似输入-使用列表提供它们的问题

按不完全匹配的列合并2个数据框

将嵌套列表转换为R中的数据帧