gpt4 book ai didi

r - 使用外部表计算字符串长度

转载 作者:行者123 更新时间:2023-12-03 23:26:54 25 4
gpt4 key购买 nike

假设你有一个数据表:

df<-tibble(person = c("Alice", "Bob", "Mary"),
colour = c("Red", "Green", "Blue"),
city = c("London", "Paris", "New York"))

# A tibble: 3 x 3
person colour city
<chr> <chr> <chr>
1 Alice Red London
2 Bob Green Paris
3 Mary Blue New York
以及包含字段名称和每个字段的最大字符串长度的第二个表:
len<-tibble(field_name = c("person", "colour", "city"),
field_length = c(12, 4, 6))

# A tibble: 3 x 2
field_name field_length
<chr> <dbl>
1 person 12
2 colour 4
3 city 6
我如何检查 len 中的每个字段, 是否为 df 中的字符串小于或等于 len$field_length , 返回未通过测试的行?
例如:
输出 df 中的第 1 行会通过,因为:
  • 'Alice' <= 12 个字符长,
  • 'Red' 是 <= 4 个字符长和
  • “伦敦”的长度 <= 6 个字符。

  • 然而,
  • 第 2 行 会失败,因为:
  • 'Green' > 4 个字符长和

  • 第 3 行 会失败,因为:
  • “纽约”> 6 个字符长。


  • 因此返回的数据框应该只显示 Rows 2Row 3df .

    最佳答案

    A dplyr使用 c_across() 的解决方案:

    library(dplyr)

    df %>%
    rowwise() %>%
    filter(any(nchar(c_across(everything())) > len$field_length)) %>%
    ungroup()

    # # A tibble: 2 x 3
    # person colour city
    # <chr> <chr> <chr>
    # 1 Bob Green Paris
    # 2 Mary Blue New York

    关于r - 使用外部表计算字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62634716/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com