小编use*_*485的帖子

将矩阵转换为数据框时保留行名

我想将矩阵转换为数据框。当我使用

df <- mat %>% data.frame()
Run Code Online (Sandbox Code Playgroud)

我丢失了行名。我如何保留它们?

r matrix dataframe rowname

6
推荐指数
1
解决办法
1万
查看次数

拆分字符串最后一个分隔符

当我在 R 中有不同数量的相同分隔符时,我需要帮助弄清楚如何根据最后一个分隔符在数据框的列中拆分字符串。例如,

col1 <- c('a', 'b', 'c')
col2 <- c('a_b', 'a_b_c', 'a_b_c_d')
df <- data.frame(cbind(col1, col2))
Run Code Online (Sandbox Code Playgroud)

我想拆分 df$col2 以获得如下所示的数据框:

col1 <- c('a', 'b', 'c')
col2 <- c('a', 'a_b', 'a_b_c')
col3 <- c('b', 'c', 'd')
Run Code Online (Sandbox Code Playgroud)

string split r delimiter

5
推荐指数
2
解决办法
3936
查看次数

将全局环境中的R对象组合成一个列表

我在全局环境中创建了一系列列表对象,可以通过字符串搜索它们。例如ls(pattern = '^data_')

如何将这组命名列表合并为 1 个列表?

environment r list

5
推荐指数
1
解决办法
724
查看次数

如何引用 dplyr mutate 中的其他列名称?

我想跨使用 dplyr mutate,并引用另一个用于所有 mutate 函数的静态列。

df <- data.frame(baseline = c(1,2,3), day1 = c(NA,2,2), day2 = c(2,3,4), day3= c(5,4,6))
Run Code Online (Sandbox Code Playgroud)

我想为每天超过基线的变化创建一个新列“fc”。我想我可能需要“sym”和 !! 的组合 围绕基线使其发挥作用,但还没有弄清楚。

df %>% mutate(fc = mutate(across(starts_with('day')), ./baseline))
Run Code Online (Sandbox Code Playgroud)

给出错误

警告消息:在 format.data.frame(if (omit) x[seq_len(n0), , drop = FALSE] else x, : 损坏的数据帧:列将被截断或用 NA 填充

我在每天的列中都有一些缺失值,因此编辑了上面的代码。当输入中存在 NA 时,如何将给出的 NA 合并到输出中而不是失败?

r dplyr across

5
推荐指数
1
解决办法
2106
查看次数

r dplyr ends_with多个字符串匹配

我可以使用dplyr :: select(ends_with)选择适合多种条件的列名称。考虑到我的列名,我想使用结尾于而不是包含或匹配项,因为我要选择的字符串在列名的末尾相关,但也可能出现在其他中间。例如,

df <- data.frame(a10 = 1:4,
             a11 = 5:8,
             a20 = 1:4,
             a12 = 5:8)
Run Code Online (Sandbox Code Playgroud)

我想选择以1或2结尾的列,以仅具有a11和a12列。select(ends_with)是最好的方法吗?

谢谢!

select r string-matching ends-with dplyr

4
推荐指数
2
解决办法
4255
查看次数

ggplot 在因子水平之间插入线

我正在 ggplot 中制作一个 tilemap,如下所示。2个问题:

1) 如何扩展 x 轴限制以在 x = 4 处标记我的组?2) 如何自动在组之间放置水平线(即 1 和 2、2 和 3 之间的线,等等),而不是手动指定 y 值?

require(tidyverse)
set.seed(1)
df <- data.frame(ID = as.character(c(1:50)),
                 Group = sample(1:8, 50, replace = T),
                 var1 = sample(c('Y', 'N'), 50, replace = T),
                 var2 = sample(c('Y', 'N'), 50, replace = T),
                 var3 = sample(c('Y', 'N'), 50, replace = T)) %>% 
  gather('var', 'y_n', var1:var3) %>% 
  arrange(-Group) %>% 
  mutate(ID = factor(ID, levels = unique(ID, ordered = T)))

ggplot(df, aes(var, ID, label = …
Run Code Online (Sandbox Code Playgroud)

r factors ggplot2

2
推荐指数
2
解决办法
1472
查看次数