我上传了一个data.frame,并且还从用户那里获得了其数据类型需要使用R shiny更改为factor的列的名称。我无法将用户特定列转换为特定数据类型。我该怎么做?另外,我如何检查列是否已转换为所需的数据类型?
答案 0 :(得分:0)
我也不确定你到底想要什么,但也许这段代码片段可以帮到你:
df <- as.data.frame(cbind(
rep(1, 10),
rep("1", 10),
rep("a", 10)
))
colnames(df) <- c("col1","col2","col3")
str(df)
这将创建一个data.frame,其中所有列都是因子。 要更改列的类型,只需更改它:)
df$col1 <- as.numeric(df$col1)
df$col3 <- as.character(df$col3)
str(df)
这会将第一列更改为数值,将最后一列更改为字符。
要将第一列更改回您将使用的因素:
df$col1 <-as.factor(df$col1)
str(df)
要测试列是否是您可以使用的因素:
is.factor(df$col1)
答案 1 :(得分:0)
我找到了解决问题的方法。
让我重新解释一下我的问题,我有一个数据框(df),其中有三列名为col1,col2和col3。这是我面临的挑战,我从用户 (R闪亮界面) 获取列名作为字符向量并将其分配给变量说
MyCol&lt; - “col1”
现在我想将数据框(df)中的col1 的数据类型转换为因子(即col1数据类型as.factor)。
当我执行功能
df $ MyCol&lt; - as.factor(df $ MyCol)时,我收到错误,但我知道我需要这样做是为了转换我的列的数据类型
df [,MyCol]&lt; - as.factor [,MyCol]
这对我有用。 : - )