我正在尝试创建一个函数,该函数将接收一个数据表,将其转换为df,将行名称更改为单独的列,然后删除行名称(否则行名称将出现两次),然后重新排列列。
我可以让它在函数外工作,但一旦我把它放进函数,它就不工作了。
示例数据:
tb <- matrix(rep(2, times=8), ncol=2, byrow=TRUE)
tb <- as.table(tb)
在不创建函数的情况下获得所需结果:
n <- as.data.frame.matrix(tb)
n$Variable <- row.names(n) #Make new column containing row names. Call it Variable.
row.names(n) <- NULL #Get rid of row names (otherwise the row names will appear twice)
n <- n[,c("Variable", "A", "B")] #Rearrange columns
尝试执行与上面相同的操作,但将其转换为函数:(到这里,我意识到输出不是我所期望的。我希望df在这个阶段包含一个额外的列,其中包含行名称。相反,我只打印了行名称)
dataframe_function<-function(data) {
n <- as.data.frame.matrix(data)
n$Variables <- row.names(n)
#rownames(n) <- NULL
}
df1 <- dataframe_function(tb)
df1
我试了很多方法,但都找不到问题所在,也无法在网上找到解决方案。请问有谁能帮我吗?
2条答案
按热度按时间mhd8tkvw1#
不如这样:
由reprex package(v2.0.1)于2023年1月1日创建
vwkv1x7d2#
函数不完整。下面是以前不在函数中的所有代码。
创建于2023年1月1日,使用reprex v2.0.2