我的数据是宽格式的,如下所示。数据包括名称和四个数据列。
df_wide <- data.frame(
name = c("John", "Smith", "Tom", "Alice"),
area = c("A", "A", "B", "B"),
hello_1 = c(20, 30, 40, 70),
hello_covered = c(60, 89, 76, 87),
world_1 = c(55, 65, 20, 29),
world_1_covered = c(87, 29, 43, 42)
)
Run Code Online (Sandbox Code Playgroud)
我想将其转换为长格式,针对每个名称,我得到两行和两个数据列。期望该数据如下所示
name area medicine value covered
1 John A hello 20 60
2 John A world 55 87
3 Smith A hello 30 89
4 Smith A world 65 29
5 Tom B hello 40 76
6 Tom B …Run Code Online (Sandbox Code Playgroud) df_wide <- structure(list(name = c("Crushers GC", "4Aces GC"), first_name = c("Charles",
"Peter"), last_name = c("Howell III", "Uihlein"), first_name_1 = c("Paul",
"Pat"), last_name_1 = c("Casey", "Perez"), first_name_2 = c("Bryson",
"Dustin"), last_name_2 = c("DeChambeau", "Johnson"), first_name_3 = c("Anirban",
"Patrick"), last_name_3 = c("Lahiri", "Reed")), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame"))
name first_name last_name first_name_1 last_name_1 first_name_2 last_name_2 first_name_3 last_name_3
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 Crushers GC Charles Howell III Paul Casey Bryson DeChambeau Anirban Lahiri …Run Code Online (Sandbox Code Playgroud)