如何使用 mutate( ..., ifelse()) 复制 R 中数据帧的值?

问题描述 投票:0回答:1

我正在努力解决一个非常基本的问题。我需要用额外的行扩展现有数据框,这取决于另一行的值 - 如果该行的值为“机器 1”,则添加基于外部脚本的值(如果该值不是“机器 1”) ",那么新行也应该只包含该名称/值。

到目前为止我有这个:

mutate(df, new_row= ifelse(Machine_name=="Machine 1", "Value from external script", df$Machine_name))

我为每台机器获得了不同的数值,而不是“Machine_name”的实际值,但不是实际名称。

r dataframe mutate
1个回答
0
投票

这里有一些不同的意思:

library(dplyr)

df <- data.frame(Machine_name = paste("Machine", 1:3))

# add a new row for every machine, with the new name "blah" if the machine name is "Machine 1"
df |> add_row(df |> mutate(Machine_name = ifelse(Machine_name == "Machine 1", "blah", Machine_name)))

# only add a new row for Machine 1, with the new name "blah"
df |> add_row(df |> filter(Machine_name == "Machine 1") |> mutate(Machine_name = "blah"))

# just replace the name of Machine 1 with "blah"
df |> mutate(Machine_name = ifelse(Machine_name == "Machine 1", "blah", Machine_name))
© www.soinside.com 2019 - 2024. All rights reserved.