小编Sta*_*des的帖子

如何替换R数据框中多列中的多个值?

假设我有以下数据框(真正的数据框是 10 个 labelx 列):

id <- c(1,2,3,4,5,6,7,8)
label1 <- c("apple","shoe","banana","hat","dog","radio","tree","pie")
label2 <- c("apple","sneaker","fruit","beanie","pet","ipod","doug fir","pie")
df <- data.frame(id,label1,label2)
Run Code Online (Sandbox Code Playgroud)

我想用对其进行分类的单词替换标签列中的所有项目。

food <- c("apple","banana","pie","fruit")
clothing <- c("shoe","hat","beanie")
entertainment <- c("radio","ipod","mp3 player","phone")
forest <- c("tree","doug fir","redwood","forest")
Run Code Online (Sandbox Code Playgroud)

我尝试过类似以下的方法:

column_list <- c("label1","label2")
new_df <- df

for(i in 1:2) {
  new_df <- new_df %>%
  mutate(parse(text=column_list[i-1]) = replace(parse(text=column_list[i-1]),
                      (parse(text=column_list[i-1]) %in% food),
                      "food"))
}
Run Code Online (Sandbox Code Playgroud)

我不必这样做,更简单也可以。Tidyverse 首选。如何替换 R 数据框中多列中的多个值?

r dataframe

4
推荐指数
1
解决办法
4577
查看次数

如果netlogo中还有elseif elseif

我想在netlogo中有一个if elseif else if else结构,但似乎目前它不起作用.

  ifelse random 100 < 68 [ set HBB-Genes "A,A" ];;68%
         [ifelse random 100 < 2  [set HBB-Genes "S,S"] ;;2%
         [ifelse random 100 < 15 [set HBB-Genes "A,A"];;15%
         [set HBB-Genes "A,A"] ;;15%


         ]]
Run Code Online (Sandbox Code Playgroud)

我希望有68%的几率发生HBB-Genes的"A,A",下一次发生的几率为2%,依此类推.如果有人有netlogo的经验,可以帮助它将非常感激.谢谢.

functional-programming if-statement netlogo

2
推荐指数
1
解决办法
7912
查看次数

计算列表中每个项目出现的次数

我有一个包含 20 个项目的列表,我想计算列表中每个项目的出现次数。我知道下面的代码

to-report frequency [i lst]
    report length filter [? = i] list
end
Run Code Online (Sandbox Code Playgroud)

但我不想写 20 行

let C1 frequency 1 (list1)
let C2 frequency 2 (list1)
.
.
.
let C20 frequency 20 (list1)
Run Code Online (Sandbox Code Playgroud)

list netlogo

1
推荐指数
1
解决办法
1535
查看次数