有没有一种方法可以根据第三列中的字符,用第二列中的字符替换数据框的一列中的字符?

时间:2020-05-13 21:23:59

标签: r

这是我当前df的示例:

region         subsector        market
AK              biomass          USA
AK            electricity        USA
AK               coal        Alaska grid
KS              biomass          USA
KS               coal        Kansas grid

如果子部门=生物量,则需要用该行的区域替换该行的市场。 df是15,000多个条目,因此我需要将其自动化。注意:每个地区将有一个以上的生物质子行业。谢谢!

2 个答案:

答案 0 :(得分:4)

我们可以通过检查'subsector'的值是否为'biomass'来创建逻辑矢量,使用该逻辑从'region'中提取值并将其分配给相应的'market'

i1 <- df$subsector == 'biomass'
df$market[i1] <- df$region[i1]

注意:在这里,我们假设列都是character。如果为factor,则一个选项为type.convert

df <- type.convert(df, as.is = TRUE)

或使用as.character

df[] <- lapply(df, as.character)

答案 1 :(得分:1)

我们可以使用switch Connectivity.checkNetwork() { case true: print("network available") //perform task case false: print("no network") }

ifelse