我已经导入了一个R中的Excel工作表,它是一个具有相同列名的多个字符串的编译。为了说明它看起来像这样:
df <- tibble( empty = c(runif(3), NA, NA, NA, NA),
A = c(runif(3), NA, NA, NA, NA),
B = c(runif(3), NA, NA, NA, NA),
C = c(runif(3), NA, NA, NA, NA),
empty = c(runif(6), NA),
A = c(runif(6), NA),
B = c(runif(6), NA),
C = c(runif(6), NA),
empty = c(runif(5), NA, NA),
A = c(runif(5), NA, NA),
B = c(runif(5), NA, NA),
C = c(runif(5), NA, NA),
.name_repair = "minimal")
字符串
我如何在这个结果中转换这个矩阵:
> df1
# A tibble: 3 x 4
empty A B C
<dbl> <dbl> <dbl> <dbl>
1 0.200 0.0665 0.723 0.487
2 0.576 0.990 0.969 0.289
3 0.727 0.192 0.780 0.243
> df2
# A tibble: 6 x 4
empty A B C
<dbl> <dbl> <dbl> <dbl>
1 0.556 0.698 0.796 0.357
2 0.308 0.542 0.867 0.103
3 0.643 0.792 0.385 0.882
4 0.675 0.504 0.489 0.0515
5 0.426 0.775 0.410 0.748
6 0.343 0.752 0.185 0.542
> df3
# A tibble: 5 x 4
empty A B C
<dbl> <dbl> <dbl> <dbl>
1 0.229 0.0508 0.0880 0.486
2 0.146 0.295 0.562 0.731
3 0.292 0.804 0.133 0.0480
4 0.0404 0.399 0.366 0.152
5 0.226 0.702 0.476 0.416
型
名称为空的列实际上没有名称,尽管我不知道如何在这个例子中分配它。
我问这个问题的原因是因为我有其他几张纸,每张纸上有不同数量的类似列(D,E等)。
我在这里找到了一个很好的帖子:split data frame with recurring column names虽然这篇文章看起来一样,但它是完全不同的。
谢谢你,谢谢
4条答案
按热度按时间e0bqpujr1#
这将结果放在
list
中,这应该更方便than sequentially named data frames。字符串
如果你真的想在你的全局环境中使用
df1, df2, ...
,添加以下行:型
3pmvbmvn2#
当重复的次数是恒定的(这里是4),那么我们可以这样做:
碱R:
字符串
bvjveswy3#
字符串
q35jwt9p4#
另一种可能的解决方案,基于
tidyverse
:字符串