在数据框 r 中粘贴“(”

paste "( ," in dataframe r

我有一个包含四列的数据,我想合并最后两列并向这些列添加“(,”和“)”,以便我可以将输出复制并粘贴到 word。

                or      p     ll     ul
(Intercept)  0.007 <0.001  0.004  0.011
agecat35-54  1.266  0.017  1.043  1.537
agecat55-69  1.761 <0.001  1.432  2.166
agecat70-84  3.097 <0.001  2.467  3.888
agecat85+    4.229 <0.001  3.307  5.408
female_1     0.766 <0.001  0.684  0.857

理想情况下,我怎样才能让它看起来像这样:

                or      p    % 95 CI
(Intercept)  0.007 <0.001  (0.004, 0.011)
agecat35-54  1.266  0.017  (1.043, 1.537)
agecat55-69  1.761 <0.001  (1.432, 2.166)
agecat70-84  3.097 <0.001  (2.467, 3.888)
agecat85+    4.229 <0.001  (3.307, 5.408)
female_1     0.766 <0.001  (0.684, 0.857)

谢谢!!

我们将您的数据框称为 df。

df$percent95CI <- paste0('(',df$ll,', ',df$ul,')')

以上表达式将为您提供所需的列。

这是使用 dplyr

的替代方法
library(dplyr)

data = read.table(header = T,text = 'or      p     ll     ul
(Intercept)  0.007 <0.001  0.004  0.011
agecat35-54  1.266  0.017  1.043  1.537
agecat55-69  1.761 <0.001  1.432  2.166
agecat70-84  3.097 <0.001  2.467  3.888
agecat85+    4.229 <0.001  3.307  5.408
female_1     0.766 <0.001  0.684  0.857')

# note the back ticks around the new column
# this allows the name to be created with arbitrary characters
summary <- 
  data %>%
  mutate(`% 95 CI` = paste0('(', ll, ', ', ul, ')')) %>%
  select(-ll, -ul)

rownames(summary) = rownames(data)
summary
#or      p        % 95 CI
#(Intercept) 0.007 <0.001 (0.004, 0.011)
#agecat35-54 1.266  0.017 (1.043, 1.537)
#agecat55-69 1.761 <0.001 (1.432, 2.166)
#agecat70-84 3.097 <0.001 (2.467, 3.888)
#agecat85+   4.229 <0.001 (3.307, 5.408)
#female_1    0.766 <0.001 (0.684, 0.857)