R用逻辑变量转置数据帧

R用逻辑变量转置数据帧,r,dataframe,types,transpose,R,Dataframe,Types,Transpose,我希望在不丢失数据类型信息的情况下(即不将TRUE/FALSE设置为1/0),转置一个在一行中包含逻辑和数字变量的数据帧 这是我的密码: xx <- data.frame( v1 = 200, v2 = 2, v3 = FALSE ) # v1 v2 v3 # 200 2 FALSE t(xx) # [,1] #v1 200 #v2 2 #v3 0 我的最后一个任务是用shiny with rhandsontable显示数据帧,以便对其进行

我希望在不丢失数据类型信息的情况下(即不将TRUE/FALSE设置为1/0),转置一个在一行中包含逻辑和数字变量的数据帧

这是我的密码:

xx <- data.frame(
  v1 = 200,
  v2 = 2,
  v3 = FALSE
)

#   v1 v2    v3
# 200  2 FALSE

t(xx)

#   [,1]
#v1  200
#v2    2
#v3    0
我的最后一个任务是用shiny with rhandsontable显示数据帧,以便对其进行修改,然后将其保存在csv文件中。因为我有一个数据框,它有很多列,只有两行,所以我想转换数据以获得更好的可视化效果。在保存之前,我再次将它们转换回原处。 我能做什么?
谢谢你的帮助

多亏了马库斯的想法,我才绕过了这个问题

首先,我将数据类型保存在向量中

dat_type <- sapply(DF, class)

dat_type多亏了马库斯的想法,我才绕过了这个问题

首先,我将数据类型保存在向量中

dat_type <- sapply(DF, class)

dat\u type“问题”在于向量只能包含单一类型(数字或逻辑),矩阵是具有维度属性的向量。示例:
c(10,FALSE)
您可以看到R将逻辑值强制为数字值。您的最终目标是什么?我必须使用rhandsontable以闪亮的方式显示数据。问题是,我的真实数据帧的列数是19,而行数只有2,因此我想将其转换为更好的可视化效果。您可以使用字符串
t(t(sapply(xx,as.character)))
我可以,但如果有一种方法可以保存每列的类型,这样在编辑数据后,我就可以将它们转回去,重新分配正确的数据类型并最终保存它们,那就太好了。问题是向量只能包含一种类型(数字或逻辑),而矩阵是具有维度属性的向量。示例:
c(10,FALSE)
您可以看到R将逻辑值强制为数字值。您的最终目标是什么?我必须使用rhandsontable以闪亮的方式显示数据。问题是,我的真实数据帧的列数是19,而行数只有2,因此我想将其转换为更好的可视化效果。您可以使用字符串
t(t(sapply(xx,as.character)))
我可以,但如果有一种方法可以保存每列的类型,这样在编辑数据后,我就可以将它们转回去,重新分配正确的数据类型并最终保存它们,那就太好了。
xx <- as.data.frame(t(xx), stringsAsFactors = F)
xx <- as.data.frame(t(xx))
data.type.assign <- function(xx, dat_type){
  for(col_ind in 1:ncol(xx)){
    switch (dat_type[col_ind],
            "numeric" = {xx[,col_ind] <- as.numeric(xx[,col_ind])},
            "character" = {xx[,col_ind] <- as.character(xx[,col_ind])},
            "logical" = {xx[,col_ind] <- as.logical(xx[,col_ind])},
            "integer" = {xx[,col_ind] <- as.integer(xx[,col_ind])}
    )
  }
  xx
}
xx <- data.type.assign(xx, dat_type)