2 つの従属変数 "Rapport" と "STRS" に対して 3 つの反復測定を行った 5 つのケースの次のサンプル データがあります。
df1<-structure(list(SubID = structure(1:5, .Label = c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26",
"27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37",
"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48",
"49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59",
"60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70",
"71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81",
"82", "83", "84"), class = "factor"), Gender = structure(c(3L,
2L, 3L, 2L, 3L), .Label = c("#NULL!", "1", "2"), class = "factor"),
Age = structure(c(5L, 3L, 2L, 2L, 3L), .Label = c("#NULL!",
"10", "11", "8", "9"), class = "factor"), Rapport.1 = structure(c(22L,
25L, 19L, 10L, 18L), .Label = c("#NULL!", "1.1", "1.85",
"2.45", "2.5", "2.55", "2.6", "2.75", "2.8", "2.85", "2.9",
"2.95", "3.2", "3.25", "3.3", "3.35", "3.4", "3.45", "3.5",
"3.55", "3.6", "3.65", "3.7", "3.75", "3.8", "3.85", "3.9",
"3.95"), class = "factor"), Rapport.2 = structure(c(29L,
31L, 27L, 17L, 9L), .Label = c("#NULL!", "1.25", "1.4", "1.6",
"1.95", "2.05", "2.3", "2.35", "2.45", "2.5", "2.65", "2.7",
"2.75", "2.8", "2.85", "3", "3.05", "3.1", "3.15", "3.2",
"3.35", "3.4", "3.45", "3.5", "3.55", "3.6", "3.65", "3.7",
"3.75", "3.8", "3.85", "3.9", "3.95", "4"), class = "factor"),
Rapport.3 = structure(c(32L, 35L, 22L, 22L, 5L), .Label = c("#NULL!",
"1.35", "1.45", "1.6", "1.75", "1.85", "1.9", "1.95", "2.05",
"2.1", "2.25", "2.3", "2.35", "2.4", "2.45", "2.6", "2.75",
"2.8", "2.9", "2.95", "3", "3.05", "3.1", "3.2", "3.25",
"3.3", "3.35", "3.4", "3.45", "3.5", "3.55", "3.6", "3.7",
"3.75", "3.8", "3.85"), class = "factor"), STRS.1 = structure(c(33L,
10L, 8L, 18L, 29L), .Label = c("#NULL!", "100", "102", "103",
"104", "106", "107", "108", "109", "110", "111", "112", "113",
"114", "115", "116", "117", "118", "119", "120", "122", "123",
"124", "125", "126", "127", "128", "129", "132", "133", "69",
"71", "73", "85", "88", "89", "92", "97", "99"), class = "factor"),
STRS.2 = structure(c(37L, 19L, 9L, 22L, 21L), .Label = c("#NULL!",
"100", "101", "103", "104", "105", "106", "107", "108", "110",
"111", "113", "114", "115", "116", "117", "118", "119", "120",
"121", "122", "123", "124", "125", "126", "127", "128", "129",
"131", "132", "136", "137", "138", "139", "158", "63", "76",
"80", "91", "94", "95", "98", "99"), class = "factor"), STRS.3 = structure(c(31L,
11L, 19L, 23L, 22L), .Label = c("#NULL!", "102", "104", "105",
"106", "107", "108", "109", "110", "111", "112", "114", "117",
"118", "119", "120", "122", "123", "124", "125", "126", "127",
"128", "129", "130", "131", "132", "133", "134", "135", "66",
"70", "75", "81", "85", "87", "88", "94", "98"), class = "factor")), .Names = c("SubID",
"Gender", "Age", "Rapport.1", "Rapport.2", "Rapport.3", "STRS.1",
"STRS.2", "STRS.3"), row.names = c(NA, 5L), class = "data.frame")
データセットをワイド フォームからロング フォームに変換するために、次のコードを実行しました。
df2<-reshape(df1, varying = 4:9, sep = ".", direction = 'long')
View(df2)
結果は私が望んでいたものですが、列 2 の「サブ ID」の複製であるため、列 8 に追加の「id」列を追加したくありません。それを確認する必要があるかどうかも知りたいです。この機能を機能させるために、リピーター測定変数の見出しに区切り文字を入れています (例: 「Rapport.1、Rapport.2 など」)。
また、reshape pkg の「melt」機能を使用して目的の結果を生成する方法も知りたいです。および tidyr pkg の「収集」機能。以下の「メルト」を実行しようとすると、エラーが発生して実行されません。
df3<-melt(df1, id.vars=c("SubID","Gender","Age"),
measure.vars=c("Rapport.1","Rapport.2","Rapport.3","STRS.1","STRS.2","STRS.3,
variable.name=c("Rapport","STRS"),
value.name=("Rapport","STRS"))
以下の「収集」を試みると、変数名「Rapport.1…」と「STRS.1…」を含む 1 つの列と、値を含む別の列が得られます。
df4<-gather(df1, Rapport, STRS, Rapport.1:STRS.3)
View(df4)
これらのパッケージの両方を使用することには利点があることを知っているので、「収集」機能と「溶解」機能を使用して目的の結果を生成する方法を理解したいと思います。誰でも手伝ってもらえますか?