楼主: rurosezwz
803 6

[实际应用] 本人系R语言初入门者,求教R语言高手一个问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

17%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
88 点
帖子
10
精华
0
在线时间
30 小时
注册时间
2018-12-7
最后登录
2021-10-12

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本人的数据如下:其中a 取值(327或329);b 取值(172或176);c 取值(138或140)个体1: 327  172    c个体2: 329  174  140
个体3:  a     b    138
个体4:  a    176   c
个体5:331  172  142
个体6:327  172    c
个体7:  a      b   138
个体8:329  176  140
个体9:327  176    c
个体10: 329  172   c
   .          .      .     .

   .          .      .     .
   .          .      .     .
   .          .      .     .
   .          .      .     .
个体间如果在三个数值上完全相同,则判定为同一类个体;如果三个数值中任意一个不同,则判定为不同类个体。
想把所有可能的取值样式全部遍历,统计出每一种取值样式时的不同类个体的数量。

还请高手们多多指教!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2021-3-6 15:59:30 |只看作者 |坛友微信交流群
    ID   A   B   C
1   P1 329 172 140
2   P2   a   b 138
3   P3   a 176 140
4   P4 329 176   c
5   P5 327   b   c
6   P6 329 172 138
7   P7 327 172 140
8   P8   a 172   c
9   P9 329   b 140
10 P10 327 176 138
11 P11 329 176 140
12 P12   a   b   c
13 P13 327 172 138
14 P14 329 172 140
15 P15 327 176   c
做了一个示例数据testdata.csv如上。

你可以直接用你的数据
  1. library(dplyr)

  2. testD <- read.csv("testdata.csv", header = T)

  3. #编个函数
  4. cntUniq <- function(x) {
  5.   tmpD <- testD
  6.   for (i in c(329, 327)) {
  7.     for (j in c(172, 176)) {
  8.       for (k in c(138, 140)) {
  9.         tmpD[which(tmpD[, 2] == "a"), 2] <- i
  10.         tmpD[which(tmpD[, 3] == "b"), 3] <- j
  11.         tmpD[which(tmpD[, 4] == "c"), 4] <- k
  12.         print(paste(
  13.           "When a =",
  14.           i,
  15.           "b =",
  16.           j,
  17.           "c =",
  18.           k,
  19.           "unique N =",
  20.           nrow(distinct(tmpD, A, B, C))
  21.         ))
  22.         tmpD <- testD
  23.       }
  24.     }
  25.   }
  26. }

  27. #执行
  28. suppressWarnings(cntUniq(testD))
复制代码






已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
llb_321 在职认证  发表于 2021-3-6 16:06:02 |只看作者 |坛友微信交流群
示例数据testdata执行循环后的结果如下:
[1] "When a = 329 b = 172 c = 138 unique N = 7"
[1] "When a = 329 b = 172 c = 140 unique N = 7"
[1] "When a = 329 b = 176 c = 138 unique N = 7"
[1] "When a = 329 b = 176 c = 140 unique N = 8"
[1] "When a = 327 b = 172 c = 138 unique N = 8"
[1] "When a = 327 b = 172 c = 140 unique N = 7"
[1] "When a = 327 b = 176 c = 138 unique N = 8"
[1] "When a = 327 b = 176 c = 140 unique N = 7"

使用道具

板凳
llb_321 在职认证  发表于 2021-3-6 16:17:33 |只看作者 |坛友微信交流群
示例数据
testdata.rar (200 Bytes) 本附件包括:
  • testdata.csv

使用道具

报纸
nolonger123 发表于 2021-3-7 00:38:18 来自手机 |只看作者 |坛友微信交流群
rurosezwz 发表于 2021-3-5 22:42
本人的数据如下:其中a 取值(327或329);b 取值(172或176);c 取值(138或140)个体1: 327  172    c个 ...
。。。。。。

使用道具

地板
rurosezwz 发表于 2021-3-8 21:18:26 |只看作者 |坛友微信交流群
非常感谢nolonger123

使用道具

7
rurosezwz 发表于 2021-3-8 21:19:51 |只看作者 |坛友微信交流群
非常感谢nolonger123

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 10:37