首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为R中的多个模式类型生成单个数字输出?

如何为R中的多个模式类型生成单个数字输出?
EN

Stack Overflow用户
提问于 2020-04-18 21:02:53
回答 2查看 43关注 0票数 0

我用R做了一个测量主动脉瓣上钙量的项目。我有5栏:三张传单上的卷和里面/外面的总容量。为了描述我在病人中发现的各种分布,我希望将每个模式(总计12个)与新列中的单个数字关联起来。例如:

  • 体积小叶1>体积小叶2>体积小叶3及体积内>外->1
  • 体积小叶1>体积小叶2>体积小叶3及体积>内->2
  • 体积小叶2>体积小叶1>体积小叶3及体积内>外-> 3

..。

  • 体积小叶3>体积小叶2>体积小叶1及体积外>内-> 12

我查阅了R中的字典,但没有找到一个好的解决方案。

代码语言:javascript
复制
structure(
  list(ctanalysis_abscv_l = c(7.897880437, 1263.82504529, 80.64252297, 602.51047473),
       ctanalysis_abscv_r = c(15.38538081, 842.835871, 94.030160661, 694.35817674),
       ctanalysis_abscv_n = c(275.901870908, 1356.2005494, 358.2288726, 794.49459655),
       ctanalysis_inside_volume = c(35.8760545, NA, 153.5488922, 715.0530575),
       ctanalysis_outside_volume = c(264.2563071, NA, 379.5414025, 1381.3362945)),
  row.names = c(NA, 4L),
  class = "data.frame")
EN

回答 2

Stack Overflow用户

发布于 2020-04-18 21:28:04

如果没有提供的数据框架,这有点困难,但是,我想您可以将新值赋值给向量,然后将它们绑定到数据框架中。看起来应该是:

代码语言:javascript
复制
test.dat = ## whatever your original findings are
new.num = ## the vector of the number for each column. (need 5)
new.dat = data.frame(test.dat, new.num) ## new frame with "Test.dat$Findings"

希望这是有用的。如果不是你想要的,我很抱歉。我只想在医学界帮忙。

票数 0
EN

Stack Overflow用户

发布于 2020-04-18 22:53:47

一种选择是使用pivot_longer将‘arrange’格式转换为'long‘格式,然后将'value’列转换为‘arrange’列,按'rn‘进行分组以paste列名,并使用match创建索引。

代码语言:javascript
复制
library(dplyr)
library(tidyr)
library(stringr)
df1 %>%
    mutate(rn = row_number()) %>% 
    pivot_longer(cols = -rn, values_drop_na = TRUE) %>%
    arrange(rn, desc(value)) %>% 
    group_by(rn) %>%
    summarise(name = str_c(name, collapse="|")) %>% 
    mutate(new = match(name, unique(name))) %>% 
    select(-rn, -name) %>%
    bind_cols(df1, .)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61296196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档