提取两个或多个字段中具有重复值但另一个字段中具有不同值的行

2023-12-09

目标是从 dataframe/data.table 中提取具有以下内容的行:

  • 两个或多个字段中的值相同(此处为 NAME 和 DOB);但
  • 另一个字段中的不同值(此处为 ID)

目前我正在这样做:

library(data.table)

# load the data
customers <- structure(list(
  NAME = c("GEETA SHYAM RAO", "B V RAMANA", "GONTU VENKATARAMANAIAH", 
           "DAMAT RAMAKRISHNA", "MARIAM SUDHAKAR", "VELPURI LAKSHMI SUJATHA", 
           "MOHAMMED LIYAKHAT ALI", "VENKATESHWARAN PONNAMBALAM",
           "DEVARAKONDA SATISH BABU", "GEEDI RAMULU", "KANDU OBULESU",
           "J PARVATHALU(TEMP.SUB-STAFF)", "DOKKA RAJESH", "G TULASIRAM REDDY",
           "MALLELA CHIRANJEEVI", "MANEPALLI VENKATA RAVAMMA", 
           "DOKKA JAGADEESHWAR", "K KRISHNA", "B SUDARSHAN", "B ANNAPURNA", 
           "CHAVVA SHIVA RAMULU", "BIKASH BAHADUR CHITRE", "DARBAR ASHOK", 
           "VEMULAPALLY SANGAMESHWAR RAO", "MOHAMMED ABDUL HAKEEM ANWAR", 
           "MANEPALLI SHIV SHANKAR RAO", "MOHD MISKEEN MOHIUDDIN",
           "KOTLA CHENNAMMA", "NAYAK SURYAKANTH", "GOPIREDDY INDIRA", 
           "MEKALA SREEDEVI", "K KRISHNA", "B V RAMANA", "KUMMARI VENKATESHAM",
           "BHAVANI CONSRUCTIONS", "UPPUTHOLLA KOTAIAH", "YEDIDHA NIRMALA DEVI",
           "MARIAM SUDHAKAR", "B ANNAPURNA", "VELPURI LAKSHMI SUJATHA",
           "DARBAR ASHOK", "AMMANA VISHNU VARDHAN REDDY", "ZAITOON BEE",
           "MOHD CHAND PASHA", "PALERELLA RAMESH", "GEEDI SRINIVAS", 
           "RAMAIAH SADU", "BIMAN BALAIAH", "KOTLA CHENNAMMA", 
           "VENKATESHWARAN PONNAMBALAM"), 
  DOB = c("13-02-1971", "15-01-1960", "01-07-1970", "10-03-1977", 
          "24-01-1954", "28-06-1971", "26-01-1980", "14-04-1969", "23-09-1978", 
          "15-08-1954", "09-10-1984", "20-02-1975", "29-09-1984", "03-03-1975", 
          "26-01-1979", "01-01-1964", "21-01-1954", "01-05-1964", "12-03-1975", 
          "12-12-1962", "10-03-1982", "14-05-1983", "03-01-1950", "04-03-1962", 
          "12-05-1966", "01-06-1960", "10-03-1964", "15-07-1958", "26-06-1979", 
          "02-04-1974", "10-01-1975", "01-05-1964", "15-01-1960", "08-08-1977", 
          NA, "05-04-1981", "29-08-1971", "24-01-1954", "12-12-1962",
          "28-06-1971", "03-01-1950", "23-06-1970", "20-02-1960", "05-07-1975",
          "10-01-1979", "31-08-1982", "10-08-1983", "10-03-1964", 
          "15-07-1958", "14-04-1969"), 
  ID = c(502969, 502902, 502985, 502981, 502475, 502267, 502976, 
         502272, 502977, 502973, 502986, 502978, 502989, 502998, 502967, 
         502971, 502988, 502737, 502995, 502878, 502972, 502984, 502639, 
         502968, 502975, 502970, 502997, 502466, 502991, 502982, 502980, 
         502737, 502902, 502999, 502994, 502987, 502990, 502047, 502877, 
         502251, 502548, 502992, 503000, 502993, 502983, 502974, 502996, 
         502979, 502467, 502290),
  PIN = c(500082, 500032, 500032, 500032, 
          500032, 500084, 500032, 500032, 500032, 500032, 500032, 500084, 
          500032, 500084, 500084, 500032, 5e+05, 500050, 500032, 500084, 
          500032, 500032, 500032, 500050, 500032, 500032, 500045, 500032, 
          500084, 500032, 500032, 500084, 500035, 500084, 500032, 500032, 
          500032, 500032, 500084, 500032, 500084, 500033, 500084, 500032, 
          500032, 500032, 500084, 500032, 500032, 500032)),
  .Names = c("NAME", "DOB", "ID", "PIN"), 
  class = c("data.table", "data.frame"), row.names = c(NA,-50L))

查一下数据:

dim(customers)
#[1] 50  4

head(customers)
                      NAME        DOB     ID    PIN
#1:         GEETA SHYAM RAO 13-02-1971 502969 500082
#2:              B V RAMANA 15-01-1960 502902 500032
#3:  GONTU VENKATARAMANAIAH 01-07-1970 502985 500032
#4:       DAMAT RAMAKRISHNA 10-03-1977 502981 500032
#5:         MARIAM SUDHAKAR 24-01-1954 502475 500032
#6: VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084

第 1 步:获取 NAME 和 DOB 列中具有相同值的行 -

dup1 <- customers[, .(ID, PIN, .N), keyby=.(NAME, DOB)][N>1][, -"N"]
dup1
#                          NAME        DOB     ID    PIN
# 1:                B ANNAPURNA 12-12-1962 502878 500084
# 2:                B ANNAPURNA 12-12-1962 502877 500084
# 3:                 B V RAMANA 15-01-1960 502902 500032
# 4:                 B V RAMANA 15-01-1960 502902 500035
# 5:               DARBAR ASHOK 03-01-1950 502639 500032
# 6:               DARBAR ASHOK 03-01-1950 502548 500084
# 7:                  K KRISHNA 01-05-1964 502737 500050
# 8:                  K KRISHNA 01-05-1964 502737 500084
# 9:            KOTLA CHENNAMMA 15-07-1958 502466 500032
#10:            KOTLA CHENNAMMA 15-07-1958 502467 500032
#11:            MARIAM SUDHAKAR 24-01-1954 502475 500032
#12:            MARIAM SUDHAKAR 24-01-1954 502047 500032
#13:    VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084
#14:    VELPURI LAKSHMI SUJATHA 28-06-1971 502251 500032
#15: VENKATESHWARAN PONNAMBALAM 14-04-1969 502272 500032
#16: VENKATESHWARAN PONNAMBALAM 14-04-1969 502290 500032

在上面的结果中,“B V RAMANA”和“K KRISHNA”的 ID 值在其重复行中相同,因此需要删除。

步骤 2:获取 NAME、DOB 和 ID 列中具有相同值的行 -

dup2 <- dup1[, .(PIN, .N), keyby=.(NAME, DOB, ID)][N>1][, -"N"]
dup2
#         NAME        DOB     ID    PIN
#1: B V RAMANA 15-01-1960 502902 500032
#2: B V RAMANA 15-01-1960 502902 500035
#3:  K KRISHNA 01-05-1964 502737 500050
#4:  K KRISHNA 01-05-1964 502737 500084

步骤 3:现在从步骤 1 中的行中删除步骤 2 中的行以获得最终结果 -

result <- fsetdiff(dup1, dup2)
result
#                          NAME        DOB     ID    PIN
# 1:                B ANNAPURNA 12-12-1962 502878 500084
# 2:                B ANNAPURNA 12-12-1962 502877 500084
# 3:               DARBAR ASHOK 03-01-1950 502639 500032
# 4:               DARBAR ASHOK 03-01-1950 502548 500084
# 5:            KOTLA CHENNAMMA 15-07-1958 502466 500032
# 6:            KOTLA CHENNAMMA 15-07-1958 502467 500032
# 7:            MARIAM SUDHAKAR 24-01-1954 502475 500032
# 8:            MARIAM SUDHAKAR 24-01-1954 502047 500032
# 9:    VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084
#10:    VELPURI LAKSHMI SUJATHA 28-06-1971 502251 500032
#11: VENKATESHWARAN PONNAMBALAM 14-04-1969 502272 500032
#12: VENKATESHWARAN PONNAMBALAM 14-04-1969 502290 500032

在上述每种情况下,NAME 和 DOB 列都有重复值,但这些重复行的 ID 列中的值必然不同。

这是用于获取结果的三行处理代码,但我确信必须有替代方法。在此示例中,只有四个字段。比如说,超过 50 个字段,即使使用复制粘贴将所有字段名称都放入代码中也是一项乏味的工作。因此,创建一个可以作为输入的可重用函数真的很酷 -

  • 数据框/数据表
  • 仅包含必须包含重复值的字段名的向量
  • 必须包含不同值的单个字段名

并将结果输出为 dataframe/data.table。请出主意。

边注:该功能在欺诈分析中被认为非常重要,以至于商业软件“CaseWare IDEA”以“重复密钥排除”的名称提供了该功能。检查此功能的实际效果:https://www.youtube.com/watch?v=XqL4j8UXsKw


我觉得OP的方法已经很好了。然而, ...

  • With j = .N就其本身而言,它会更有效率。看?GForce了解详情。
  • 我认为OP的两个步骤在OP和链接视频中描述的“重复键排除”任务中没有成功:

    在上述每种情况下,NAME 和 DOB 列都有重复值,但这些重复行的 ID 列中的值必然不同。

对于OP的两个步骤,有......

bycols = c("NAME", "DOB")
dcol = "ID"

cols = c(bycols, dcol)

w1 = customers[customers[, .N, by=bycols][N > 1L, !"N"], on=bycols, which=TRUE]
customers[w1][!customers[w1, .N, by=cols][N > 1L, !"N"], on=cols]

对于引用的任务...

mDT = customers[!duplicated(customers, by=cols), .N, by=bycols][N > 1L]
customers[mDT[, !"N"], on=bycols]

不管怎样,对于OP的例子,我们得到

                          NAME        DOB     ID    PIN
 1:            MARIAM SUDHAKAR 24-01-1954 502475 500032
 2:            MARIAM SUDHAKAR 24-01-1954 502047 500032
 3:    VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084
 4:    VELPURI LAKSHMI SUJATHA 28-06-1971 502251 500032
 5: VENKATESHWARAN PONNAMBALAM 14-04-1969 502272 500032
 6: VENKATESHWARAN PONNAMBALAM 14-04-1969 502290 500032
 7:                B ANNAPURNA 12-12-1962 502878 500084
 8:                B ANNAPURNA 12-12-1962 502877 500084
 9:               DARBAR ASHOK 03-01-1950 502639 500032
10:               DARBAR ASHOK 03-01-1950 502548 500084
11:            KOTLA CHENNAMMA 15-07-1958 502466 500032
12:            KOTLA CHENNAMMA 15-07-1958 502467 500032

mDT是一个描述重复项的汇总表,方便浏览:

> mDT
                         NAME        DOB N
1:            MARIAM SUDHAKAR 24-01-1954 2
2:    VELPURI LAKSHMI SUJATHA 28-06-1971 2
3: VENKATESHWARAN PONNAMBALAM 14-04-1969 2
4:                B ANNAPURNA 12-12-1962 2
5:               DARBAR ASHOK 03-01-1950 2
6:            KOTLA CHENNAMMA 15-07-1958 2

__San__ 编辑(原海报):

修改数据集以显示如何处理 Frank 之前指出的情况:“ID = A A B 的组将失去两个 A 并保留 B”

library(data.table)

# load the data
customers <- structure(list(
  NAME = c("GEETA SHYAM RAO", "B V RAMANA", "GONTU VENKATARAMANAIAH", 
           "DAMAT RAMAKRISHNA", "MARIAM SUDHAKAR", "VELPURI LAKSHMI SUJATHA", 
           "MOHAMMED LIYAKHAT ALI", "VENKATESHWARAN PONNAMBALAM", 
           "DEVARAKONDA SATISH BABU", "GEEDI RAMULU", "KANDU OBULESU",
           "B V RAMANA", "DOKKA RAJESH", "G TULASIRAM REDDY", 
           "MALLELA CHIRANJEEVI", "MANEPALLI VENKATA RAVAMMA", 
           "DOKKA JAGADEESHWAR", "K KRISHNA", "B SUDARSHAN", "B ANNAPURNA", 
           "CHAVVA SHIVA RAMULU", "BIKASH BAHADUR CHITRE", "DARBAR ASHOK", 
           "VEMULAPALLY SANGAMESHWAR RAO", "MOHAMMED ABDUL HAKEEM ANWAR", 
           "MANEPALLI SHIV SHANKAR RAO", "MOHD MISKEEN MOHIUDDIN",
           "KOTLA CHENNAMMA", "NAYAK SURYAKANTH", "GOPIREDDY INDIRA", 
           "MEKALA SREEDEVI", "K KRISHNA", "B V RAMANA", 
           "KUMMARI VENKATESHAM", "BHAVANI CONSRUCTIONS", 
           "UPPUTHOLLA KOTAIAH", "YEDIDHA NIRMALA DEVI", "MARIAM SUDHAKAR", 
           "B ANNAPURNA", "VELPURI LAKSHMI SUJATHA", "DARBAR ASHOK", 
           "AMMANA VISHNU VARDHAN REDDY", "ZAITOON BEE", "MOHD CHAND PASHA",
           "PALERELLA RAMESH", "GEEDI SRINIVAS", "RAMAIAH SADU",
           "BIMAN BALAIAH", "KOTLA CHENNAMMA", "VENKATESHWARAN PONNAMBALAM"),
  DOB = c("13-02-1971", "15-01-1960", "01-07-1970", "10-03-1977", 
          "24-01-1954", "28-06-1971", "26-01-1980", "14-04-1969", 
          "23-09-1978", "15-08-1954", "09-10-1984", "15-01-1960", 
          "29-09-1984", "03-03-1975", "26-01-1979", "01-01-1964", 
          "21-01-1954", "01-05-1964", "12-03-1975", "12-12-1962", 
          "10-03-1982", "14-05-1983", "03-01-1950", "04-03-1962", 
          "12-05-1966", "01-06-1960", "10-03-1964", "15-07-1958", 
          "26-06-1979", "02-04-1974", "10-01-1975", "01-05-1964",
          "15-01-1960", "08-08-1977", NA, "05-04-1981", "29-08-1971",
          "24-01-1954", "12-12-1962", "28-06-1971", "03-01-1950",
          "23-06-1970", "20-02-1960", "05-07-1975", "10-01-1979", 
          "31-08-1982", "10-08-1983", "10-03-1964", "15-07-1958",
          "14-04-1969"),
  ID = c(502969, 502902, 502985, 502981, 502475, 502267, 502976, 
         502272, 502977, 502973, 502986, 502910, 502989, 502998, 502967, 
         502971, 502988, 502737, 502995, 502878, 502972, 502984, 502639, 
         502968, 502975, 502970, 502997, 502466, 502991, 502982, 502980, 
         502737, 502902, 502999, 502994, 502987, 502990, 502047, 502877, 
         502251, 502548, 502992, 503000, 502993, 502983, 502974, 502996, 
         502979, 502467, 502290), 
  PIN = c(500082, 500032, 500032, 500032, 500032, 500084, 500032, 500032,
          500032, 500032, 500032, 500033, 500032, 500084, 500084, 500032,
          5e+05, 500050, 500032, 500084, 500032, 500032, 500032, 500050,
          500032, 500032, 500045, 500032, 500084, 500032, 500032, 500084,
          500035, 500084, 500032, 500032, 500032, 500032, 500084, 500032,
          500084, 500033, 500084, 500032, 500032, 500032, 500084, 500032,
          500032, 500032)),
  .Names = c("NAME", "DOB", "ID", "PIN"),
  row.names = c(NA, -50L), class = c("data.table", "data.frame"))

# define function for duplicate key exclusion
dupKeyEx <- function(DT, dup_cols, unique_cols) {
  cols <-  c(dup_cols, unique_cols)
  mDT <-  DT[!duplicated(DT, by=cols), .N, by=dup_cols][N > 1L]
  ans <- unique(DT[mDT[, !"N"], on=dup_cols], by=cols)
  return(ans)
}

# call function
result <- dupKeyEx(customers, c("NAME", "DOB"), "ID")
result

结果告诉我们,B V RAMANA(相同的姓名和出生日期)已获得多个 ID,并显示这些不同的 ID,如下所示:

                          NAME        DOB     ID    PIN
 1:                B ANNAPURNA 12-12-1962 502877 500084
 2:                B ANNAPURNA 12-12-1962 502878 500084
 3:                 B V RAMANA 15-01-1960 502902 500032
 4:                 B V RAMANA 15-01-1960 502910 500033
 5:               DARBAR ASHOK 03-01-1950 502548 500084
 6:               DARBAR ASHOK 03-01-1950 502639 500032
 7:            KOTLA CHENNAMMA 15-07-1958 502466 500032
 8:            KOTLA CHENNAMMA 15-07-1958 502467 500032
 9:            MARIAM SUDHAKAR 24-01-1954 502047 500032
10:            MARIAM SUDHAKAR 24-01-1954 502475 500032
11:    VELPURI LAKSHMI SUJATHA 28-06-1971 502251 500032
12:    VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084
13: VENKATESHWARAN PONNAMBALAM 14-04-1969 502272 500032
14: VENKATESHWARAN PONNAMBALAM 14-04-1969 502290 500032

如果 OP 方法用于此修改后的数据集,则 B V RAMANA 具有相同 ID 的两行将丢失,并且结果将仅显示颁发给 B V RAMANA 的一个(总共三个)ID,因为使用该方法“ID = A A B 的一组”将失去两个 A 并保留 B”(引用 Frank 的话)。这同样适用于 Uwe Block 的其他 data.table 解决方案。不符合目的的结果如下所示。

                          NAME        DOB     ID    PIN
 1:                B ANNAPURNA 12-12-1962 502878 500084
 2:                B ANNAPURNA 12-12-1962 502877 500084
 3:                 B V RAMANA 15-01-1960 502910 500033
 4:               DARBAR ASHOK 03-01-1950 502639 500032
 5:               DARBAR ASHOK 03-01-1950 502548 500084
 6:            KOTLA CHENNAMMA 15-07-1958 502466 500032
 7:            KOTLA CHENNAMMA 15-07-1958 502467 500032
 8:            MARIAM SUDHAKAR 24-01-1954 502475 500032
 9:            MARIAM SUDHAKAR 24-01-1954 502047 500032
10:    VELPURI LAKSHMI SUJATHA 28-06-1971 502267 500084
11:    VELPURI LAKSHMI SUJATHA 28-06-1971 502251 500032
12: VENKATESHWARAN PONNAMBALAM 14-04-1969 502272 500032
13: VENKATESHWARAN PONNAMBALAM 14-04-1969 502290 500032

直到有人想到新方法失败的情况,我认为我们已经找到了“重复键排除”的正确解决方案。 Frank 提供的出色的 catch 和 data.table 解决方案。


对于涵盖由于前导或尾随空格而导致值不匹配的情况的扩展,请参阅OP的后续内容如何引用函数内变量中保存的多个列名,它使用stringr::str_trim()并得出结论:

dupKeyEx <- function(DT, dup_cols, unique_cols) {
  cols <-  c(dup_cols, unique_cols)
  chr_cols <- cols[sapply(DT[, ..cols], is.character)]
  DT[, (chr_cols) := lapply(.SD, stringr::str_trim), .SDcols=chr_cols]
  mDT <-  DT[!duplicated(DT, by=cols), .N, by=dup_cols][N > 1L]
  ans <- unique(DT[mDT[, !"N"], on=dup_cols], by=cols)
  setorderv(ans, c(dup_cols, unique_cols))
  return(ans)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提取两个或多个字段中具有重复值但另一个字段中具有不同值的行 的相关文章

  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 将 sf voronoi 多边形裁剪到边界框时出错

    我正在尝试将 voronoi polygons 使用 sf package 创建 剪辑 到边界框 但它引发了我无法定义的错误 我对 R 的空间世界不太有经验 感谢所有帮助 样本数据 stations lt structure list ST
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想
  • 如何根据两个数据框中最近的日期进行匹配?

    假设我有两个数据框 例如 set seed 123 df1 lt data frame bmi rnorm 20 25 5 date1 sample seq Date as Date 2014 01 01 as Date 2014 02 2
  • 如何从R arrow中的feather文件中读取列名和元数据?

    现已取代 独立R 的羽毛库 https github com wesm feather有一个函数叫做feather metadata 允许从磁盘上的羽毛文件中读取列名称和类型 而无需打开它们 当在 R 中加载羽毛文件时 这对于仅选择特定列很
  • 更改计划的开始日期以优化资源

    我有很多工作需要在特定的时间间隔执行 然而 我们每天完成这项工作的资源有限 因此 我正在尝试优化开始时间日期 开始时间日期只能向前移动 不能向后移动 以便每天使用的资源与我们的预算更加不相似 这些函数在下面的示例中使用 Function t
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • 如何在我自己的网络服务器上导出并托管 ggvis 图表?

    据我了解 ggvis 运行在闪亮的之上 但我不知道如何在没有 R shiny 的情况下导出在网络服务器上运行单个 ggvis 图表所需的所有文件 这对于交互式绘图来说是不可能的 因为 每个交互式 ggvis 图都必须连接到正在运行的 R 会
  • 根据R中的前一行和当前行按组计算

    我可以根据 R 中的前一行和当前行进行计算 对于此数据框 df A B 1 2 2 2 2 3 3 4 5 5 B2 A2 0 5 B1 我可以使用这段代码来计算这个函数 for i in 2 nrow df B i lt 1 2 B i

随机推荐