R用逻辑变量转置数据帧
我希望在不丢失数据类型信息的情况下(即不将TRUE/FALSE设置为1/0),转置一个在一行中包含逻辑和数字变量的数据帧 这是我的密码: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显示数据帧,以便对其进行
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)