【问题标题】:the condition has length > 1 and only the first element will be used error条件的长度 > 1 并且只使用第一个元素错误
【发布时间】:2021-06-11 00:22:33
【问题描述】:
if (crabs$FL >= median(crabs$FL)) {crabs$FLG <- "L"} else {crabs$FLG <- "S"}

crabs 是数据名,FL 是变量名。如果 FL 大于中位数,我正在尝试创建一个变量名称“FLG”。

但它表示条件的长度 > 1,并且只会使用第一个元素。它创建了 FLG,但似乎只有第一行的值用于创建它。

if (crabs$FL[i] >= median(crabs$FL)) {crabs$FLG <- "L"} else {crabs$FLG <- "S"}

我试过这个。但现在它说 if (crabs$FL[i] >= median(crabs$FL)) { 中的错误: 需要 TRUE/FALSE 的缺失值。

请给我任何解决此错误的想法!

【问题讨论】:

标签: r


【解决方案1】:

如果你不介意 tidyverse 的方式,这段代码应该可以让你得到你想要的。

library(tidyverse)
crabs <- data.frame(FL = c(1,2,3,4,5,50000))

crabs_2 <- crabs %>%
  mutate(
   FLG = case_when(
     FL >= median(FL) ~ 'L',
     TRUE ~ 'S'
   ) 
  )

【讨论】:

    【解决方案2】:

    也许:

    mutate(crabs, FLG = if_else(FL >= median(crabs$FL), 'L', 'S'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      相关资源
      最近更新 更多