データは、tibble 形式だけで統一できるとスッキリしますが、まだまだ、古いパッケージを利用することも多いと思います。その場合、結果のオブジェクトがデータフレーム形式であることも多いでしょう。
> input_df <- read.delim("input_data.tsv", row.names = 1)
>
> # data.frame 形式のテーブル
> input_df
Sample1 Sample2
id1 1 4
id2 2 5
id3 3 6
下記のように as_tibble() 関数で、データフレームから tibble に変換できます。tibble は、rownames を持たないため、データフレームの rownames を普通の列 (column) に変換しておく必要があります。その名の通りの関数 rownames_to_column() も準備されています。
> as_tibble(rownames_to_column(input_df, "Id"))
# A tibble: 3 x 3
Id Sample1 Sample2
<chr> <int> <int>
1 id1 1 4
2 id2 2 5
3 id3 3 6
複雑なオブジェクトの場合は、rownames_to_column() の前に、as.data.frame() などとしておきます。
> as_tibble(rownames_to_column(as.data.frame(input_df), "Id"))
# A tibble: 3 x 3
Id Sample1 Sample2
<chr> <int> <int>
1 id1 1 4
2 id2 2 5
3 id3 3 6
tibble からデータフレームに変換 #
逆に、tibble からデータフレームにする必要があれば、 column_to_rownames() 関数を使います。引数で、どの列を rownames にするか指定します。
> input_data
# A tibble: 3 x 3
Id Sample1 Sample2
<chr> <dbl> <dbl>
1 id1 1 4
2 id2 2 5
3 id3 3 6
>
>
> column_to_rownames(input_data, "Id")
Sample1 Sample2
id1 1 4
id2 2 5
id3 3 6