pivot_longer()
"lengthens"數據,增加行數並減少列數。逆變換為`tidyr::pivot_wider()]
在vignette("pivot", "tidyr")
中了解更多信息。
雖然大多數函數相同,但與本地數據幀上的 pivot_longer()
存在一些差異:
-
輸出的排序不同/不明確,
-
混合列類型的強製留給數據庫,
-
values_ptypes
不支持。
請注意,build_longer_spec()
和 pivot_longer_spec()
不適用於遠程表。
用法
# S3 method for tbl_lazy
pivot_longer(
data,
cols,
...,
cols_vary,
names_to = "name",
names_prefix = NULL,
names_sep = NULL,
names_pattern = NULL,
names_ptypes = NULL,
names_transform = NULL,
names_repair = "check_unique",
values_to = "value",
values_drop_na = FALSE,
values_ptypes,
values_transform = NULL
)
參數
- data
-
要旋轉的 DataFrame 。
- cols
-
列轉向更長的格式。
- ...
-
傳遞給方法的附加參數。
- cols_vary
-
不支持;包含在內是為了與通用兼容。
- names_to
-
一個字符串,指定要根據
data
的列名稱中存儲的數據創建的列的名稱。 - names_prefix
-
用於從每個變量名稱開頭刪除匹配文本的正則表達式。
- names_sep, names_pattern
-
如果
names_to
包含多個值,這些參數控製列名的分解方式。 - names_ptypes
-
name-prototype 列對的列表。
- names_transform, values_transform
-
name-function 列對的列表。
- names_repair
-
如果輸出具有無效的列名稱,會發生什麽情況?
- values_to
-
一個字符串,指定要根據單元格值中存儲的數據創建的列的名稱。如果
names_to
是包含特殊.value
標記的字符,則該值將被忽略,並且值列的名稱將從部分現有列名稱派生。 - values_drop_na
-
如果
TRUE
,將刪除value_to
列中僅包含NA
的行。 - values_ptypes
-
不支持。
細節
SQL 翻譯的基本工作原理如下:
-
按其關鍵列(即通過塞入列名稱中的變量)拆分規範。
-
對於拆分規範中的每個部分
transmute()
data
分為以下列
-
id 列,即未旋轉的列
-
關鍵列
-
值列,即旋轉的列
-
將所有部分與
union_all()
結合起來
例子
# See vignette("pivot") for examples and explanation
# Simplest case where column names are character data
memdb_frame(
id = c("a", "b"),
x = 1:2,
y = 3:4
) %>%
tidyr::pivot_longer(-id)
#> # Source: SQL [4 x 3]
#> # Database: sqlite 3.41.2 [:memory:]
#> id name value
#> <chr> <chr> <int>
#> 1 a x 1
#> 2 b x 2
#> 3 a y 3
#> 4 b y 4
相關用法
- R dbplyr pivot_wider.tbl_lazy 將數據從長軸轉向寬軸
- R dbplyr partial_eval 部分評估表達式。
- R dbplyr pull.tbl_sql 提取單列
- R dbplyr backend-teradata 後端:Teradata
- R dbplyr escape 轉義/引用字符串。
- R dbplyr expand.tbl_lazy 擴展 SQL 表以包含所有可能的值組合
- R dbplyr distinct.tbl_lazy 子集不同/唯一行
- R dbplyr backend-sqlite 後端:SQLite
- R dbplyr build_sql 構建 SQL 字符串。
- R dbplyr mutate.tbl_lazy 創建、修改和刪除列
- R dbplyr collapse.tbl_sql 計算查詢的結果
- R dbplyr sql_expr 從 R 表達式生成 SQL
- R dbplyr get_returned_rows 提取並檢查返回的行
- R dbplyr dbplyr_uncount “計數”數據庫表
- R dbplyr count.tbl_lazy 按組計數觀察值
- R dbplyr backend-odbc 後端:ODBC
- R dbplyr head.tbl_lazy 對第一行進行子集化
- R dbplyr db-quote SQL 轉義/引用泛型
- R dbplyr copy_inline 在 dbplyr 查詢中使用本地 DataFrame
- R dbplyr backend-oracle 後端:甲骨文
- R dbplyr backend-snowflake 後端:雪花
- R dbplyr lahman 緩存並檢索 Lahman 棒球數據庫的 src_sqlite。
- R dbplyr backend-redshift 後端:紅移
- R dbplyr group_by.tbl_lazy 按一個或多個變量分組
- R dbplyr tbl_lazy 創建本地惰性 tibble
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Pivot data from wide to long。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。