根据第 name/number 列条件转置数据帧

Transpose dataframe based on column name/number condition

我正在尝试标准化 R 中 API 的反馈。但是在某些情况下,API returns 是一种不同的格式。这不允许我标准化和自动化。我想到了一个解决方案如下:

  1. 如果数据框有超过 1 个变量,保持数据框不变
  2. 如果数据帧有 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