gpt4 book ai didi

删除每个单元格内新行中的重复观察值

转载 作者:行者123 更新时间:2023-12-04 12:00:13 26 4
gpt4 key购买 nike

我有一些数据对新线路进行了观察。例如第17行;

> d[17, ]
# A tibble: 1 x 2
grp figures
<int> <chr>
1 9923 "0.26 - 0.31\n0.97 - 1.02\n1.29 - 1.34\n0.26 - 0.31\n0.97 - 1.02\n1.29 - 1.34"

看起来像:

0.26 - 0.31

0.97 - 1.02

1.29 - 1.34 # duplicate

0.26 - 0.97

1.29 - 1.34 # duplicate

我想删除每个单元格中重复的行。我知道 duplicate 函数,但我不确定如何逐行应用它们。

数据:

d <- structure(list(grp = c(10467L, 2485L, 4749L, 331L, 2442L, 2847L, 
5910L, 10344L, 3382L, 10488L, 1665L, 6546L, 781L, 570L, 1109L,
2181L, 9923L, 3107L, 844L, 6224L, 2781L, 671L, 1349L, 2410L,
10256L, 944L, 5505L, 4220L, 4638L, 4917L, 868L, 9130L, 1168L,
4294L, 5274L, 10836L, 3416L, 7427L, 2334L, 10898L), figures = c("1.13 - 1.21",
"380 - 400", "4.35 - 4.65", "1.94 - 2.03\n2.33 - 2.42", "0.48 - 0.54",
"3.64 - 3.66", "1.14 - 1.20", "2.87 - 2.90", "3.17 - 3.22\n3.10 - 3.20",
"0.40 - 0.50\n0.35 - 0.45\n51 - 53", "1.01 - 1.10", "3.79 - 3.81\n3.76 - 3.80",
"1.10 - 1.17", "1.57 - 1.67\n1.65 - 1.75", "1.35 - 1.45", "1.36 - 1.54\n1.75 - 1.80",
"0.26 - 0.31\n0.97 - 1.02\n1.29 - 1.34\n0.26 - 0.31\n0.97 - 1.02\n1.29 - 1.34",
"1.10 - 1.20", "1.35 - 1.50\n1.65 - 1.80\n1.35 - 1.50\n1.65 - 1.80\n1.35 - 1.50\n1.65 - 1.80",
"2.90 - 2.95", "3.05 - 3.12\n3.05 - 3.12", "0.45 - 0.50\n0.65 - 0.70\n0.60 - 0.65",
"1.58 - 2.08", "1.43 - 1.48", "57.9 - 72.9\n12.5 - 14.5\n0.45 - 0.52\n1.55 - 1.62",
"1.97 - 2.01.\n1.87 - 1.94.\n2.01 - 2.08\n2.15 - 2.19", "3.25 - 3.34",
"0.90 - 0.94", "3.45 - 3.55\n0.60 - 0.64\n0.70 - 0.74", "0.05 - 0.08",
"2.30 - 2.40", "0.35 - 0.37\n0.33 - 0.37.\n1.05 - 1.07", "3.45 - 3.65\n3.45 - 3.65",
"3.11 - 3.15", "0.75 - 1.00\n1.10 - 1.30", "3.50 - 3.60\n3.47 - 3.57\n3.30 - 3.40\n3.47 - 3.57\n0.10 - 0.15",
"5.75 - 6.00\n7.00 - 7.50\n0 - 50\n500 - 550", "3.35 - 3.45\n3.30 - 3.45",
"1.60 - 1.80.\n1.60 - 1.80", "0.98 - 1.03")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -40L))

编辑:

在删除重复项之前对 grp = 9923 的观察是:

0.26 - 0.31

0.97 - 1.02

1.29 - 1.34 # duplicate

0.26 - 0.97

1.29 - 1.34 # duplicate

然后我在删除重复项后查看观察结果,我得到:

0.26 - 0.31
0.97 - 1.02
1.29 - 1.34

它已正确删除了重复项,但也删除了不是重复项的观察值 0.26 - 0.97

最佳答案

您可以在 strsplit 之后使用 unique,然后再次将它们粘贴 在一起,例如:

sapply(lapply(strsplit(d$figures, "\n"), unique), paste, collapse="\n")

一个循环但输入更多但可能更快:

lapply(strsplit(d$figures, "\n"), function(x) paste(unique(x), collapse="\n"))

关于删除每个单元格内新行中的重复观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61658144/

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