根据第 name/number 列条件转置数据帧
Transpose dataframe based on column name/number condition
我正在尝试标准化 R 中 API 的反馈。但是在某些情况下,API returns 是一种不同的格式。这不允许我标准化和自动化。我想到了一个解决方案如下:
- 如果数据框有超过 1 个变量,保持数据框不变
- 如果数据帧有 1 个变量则转置
这是我迄今为止尝试过的方法
col <- ncol(df)
df <- ifelse( col > 1, as.data.frame(df), as.data.frame(t(df))
然而,这 returns 是一个列表,不允许进一步处理。提前感谢您的帮助。任何链接也会有所帮助。
谢谢
也许你需要这样的东西:
# some simple dataframes
df1 <- data.frame(col1 = c("a","b"))
df2 <- data.frame(col1 = c("a","b"),
col2 = c("c","d"))
func <- function(df) {
if (ncol(df) ==1) {
as.data.frame(t(df))
} else {
(df)
}
}
func(df1)
V1 V2
col1 a b
func(df2)
col1 col2
1 a c
2 b d
我正在尝试标准化 R 中 API 的反馈。但是在某些情况下,API returns 是一种不同的格式。这不允许我标准化和自动化。我想到了一个解决方案如下:
- 如果数据框有超过 1 个变量,保持数据框不变
- 如果数据帧有 1 个变量则转置
这是我迄今为止尝试过的方法
col <- ncol(df)
df <- ifelse( col > 1, as.data.frame(df), as.data.frame(t(df))
然而,这 returns 是一个列表,不允许进一步处理。提前感谢您的帮助。任何链接也会有所帮助。
谢谢
也许你需要这样的东西:
# some simple dataframes
df1 <- data.frame(col1 = c("a","b"))
df2 <- data.frame(col1 = c("a","b"),
col2 = c("c","d"))
func <- function(df) {
if (ncol(df) ==1) {
as.data.frame(t(df))
} else {
(df)
}
}
func(df1)
V1 V2
col1 a b
func(df2)
col1 col2
1 a c
2 b d