首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建从其他字符串读取结果的字符列?

如何创建从其他字符串读取结果的字符列?
EN

Stack Overflow用户
提问于 2022-08-20 08:50:55
回答 1查看 18关注 0票数 1

我有过

代码语言:javascript
复制
       measure           estimate.difference
1   pT8 vs pT7  0.33 (95% CI: -1.39 to 2.06)
2 No pT vs pT7 -2.31 (95% CI: -4.95 to 0.33)
3 No pT vs pT8 -2.64 (95% CI: -5.67 to 0.38)
4   pT8 vs pT7  0.14 (95% CI: -0.26 to 0.53)
5 No pT vs pT7  0.16 (95% CI: -0.37 to 0.69)

df$estimate.difference比较了df$measure中列出的两个独立预测模型的结果。

如果df$estimate.difference为正,则... vs ...的“左侧”是最佳模型,如果值为负值,则“右侧”为最佳。我需要一个列来表示什么模型是最好的(我的数据集很大)。

是否可以创建一个字符列,该列首先读取df$estimate.difference是正的还是负的,然后打印左或右的“度量值名称”?

预期输出

代码语言:javascript
复制
       measure       best.model               estimate.difference
1   pT8 vs pT7              pT8       0.33 (95% CI: -1.39 to 2.06)
2 No pT vs pT7              pT7      -2.31 (95% CI: -4.95 to 0.33)
3 No pT vs pT8              pT8      -2.64 (95% CI: -5.67 to 0.38)
4   pT8 vs pT7              pT8       0.14 (95% CI: -0.26 to 0.53)
5 No pT vs pT7            No pT       0.16 (95% CI: -0.37 to 0.69)

数据

代码语言:javascript
复制
df <- structure(list(measure = c("pT8 vs pT7", "No pT vs pT7", "No pT vs pT8", 
                           "pT8 vs pT7", "No pT vs pT7"), estimate.difference = c("0.33 (95% CI: -1.39 to 2.06)", 
                                                                                  "-2.31 (95% CI: -4.95 to 0.33)", "-2.64 (95% CI: -5.67 to 0.38)", 
                                                                                  "0.14 (95% CI: -0.26 to 0.53)", "0.16 (95% CI: -0.37 to 0.69)"
                           )), row.names = c(NA, 5L), class = "data.frame")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-20 08:58:39

使用strsplitmapply

代码语言:javascript
复制
transform(df, 
          best.model=mapply(`[`, strsplit(df$measure, ' vs '),
                            (as.numeric(sapply(strsplit(df$estimate.difference, ' '), `[`, 1)) < 0 ) + 1)
          )
#        measure           estimate.difference best.model
# 1   pT8 vs pT7  0.33 (95% CI: -1.39 to 2.06)        pT8
# 2 No pT vs pT7 -2.31 (95% CI: -4.95 to 0.33)        pT7
# 3 No pT vs pT8 -2.64 (95% CI: -5.67 to 0.38)        pT8
# 4   pT8 vs pT7  0.14 (95% CI: -0.26 to 0.53)        pT8
# 5 No pT vs pT7  0.16 (95% CI: -0.37 to 0.69)      No pT
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73425318

复制
相关文章

相似问题

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