如何旋转单个单元格数据框

如何解决如何旋转单个单元格数据框

我遇到过这么简单的挑战,但不知道如何正确地做到这一点。

library(tibble)
library(dplyr)


# I have this single-cell dataframe

tibble::tribble(~red,"apple")

## # A tibble: 1 x 1
##   red  
##   <chr>
## 1 apple

但是 red 是变量 fruit 的一个属性,其中 apple 是一个观察结果。因此,我希望我的数据看起来像:

# Desired Output:

## # A tibble: 1 x 2
##   fruit red  
##   <chr> <lgl>
## 1 apple TRUE 

所以我尝试了一个笨拙的方法,这似乎不是最佳实践:

tibble::tribble(~red,"apple") %>%
  mutate(is_red = TRUE) %>%
  rename(fruit = red,red = is_red)

有没有合适的方法来做到这一点?也许通过旋转而不是变异和重命名?

解决方法

在基础 R 中你会这样做:

table(stack(df))>0
       ind
values   red
  apple TRUE

如果你需要它作为数据框:

as.data.frame.matrix(table(stack(df)) > 0)
       red
apple TRUE

请注意,即使您有多种颜色和水果,这也会起作用: 例如:

df1=data.frame(red= 'apple',green = 'apple',orange = 'orange',yellow = 'banana') 

as.data.frame.matrix(table(stack(df1)) > 0)
         red green orange yellow
apple   TRUE  TRUE  FALSE  FALSE
banana FALSE FALSE  FALSE   TRUE
orange FALSE FALSE   TRUE  FALSE
,

我们可以使用 pivot_longermutate 'red' 来逻辑 TRUE

library(dplyr)
library(tidyr)
df1 %>%
    pivot_longer(everything(),names_to = names(.),values_to = 'fruit') %>%
     mutate(!! names(df1) := TRUE)

-输出

# A tibble: 1 x 2
#  red   fruit
#  <lgl> <chr>
#1 TRUE  apple

或者另一个选项是cur_column

df1 %>% 
  mutate(across(everything(),~cur_column(),.names = "fruit"),!! names(df1) := TRUE)
# A tibble: 1 x 2
#   red   fruit
#   <lgl> <chr>
#1 TRUE  red  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?