Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我如何使桌子整洁?_R_Dataframe_Pivot Table - Fatal编程技术网

R 我如何使桌子整洁?

R 我如何使桌子整洁?,r,dataframe,pivot-table,R,Dataframe,Pivot Table,我在下表中记录了我的日常活动。每列代表一天中的一小时,数字对应一项活动 我想把它带到R中进行分析,但我认为更有用的是一个“整洁”的格式,在这个格式中,我可以把时间放在一个列中,相关的活动放在旁边的一个列中。大概是这样的: | Date | Hour | Activity | |-----------|-------|----------| | 1/12/2021 | 00:00 | 23 | | 1/12/2021 | 01:00 | 23 | 我曾尝试在

我在下表中记录了我的日常活动。每列代表一天中的一小时,数字对应一项活动

我想把它带到R中进行分析,但我认为更有用的是一个“整洁”的格式,在这个格式中,我可以把时间放在一个列中,相关的活动放在旁边的一个列中。大概是这样的:

| Date      | Hour  | Activity |
|-----------|-------|----------|
| 1/12/2021 | 00:00 | 23       |
| 1/12/2021 | 01:00 | 23       |
我曾尝试在Excel中旋转表格,但没有得到所需的结果

我该怎么办

dput结果:

> dput(data)
structure(list(Day = c("01-01-2021", "01-02-2021", "01-03-2021", 
"01-04-2021", "01-05-2021", "01-06-2021", "01-07-2021", "01-08-2021", 
"01-09-2021", "01-10-2021", "01-11-2021", "01-12-2021", "01-13-2021", 
"01-14-2021", "01-15-2021"), X00.00 = c(1L, 1L, 1L, 7L, 1L, 23L, 
1L, 1L, 1L, 1L, 1L, 17L, 1L, 1L, 1L), X01.00 = c(1L, 1L, 1L, 
1L, 1L, 4L, 1L, 1L, 1L, 1L, 1L, 17L, 1L, 1L, 1L), X02.00 = c(1L, 
1L, 1L, 1L, 1L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), X03.00 = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), X04.00 = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), X05.00 = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), X06.00 = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), X07.00 = c(1L, 
10L, 1L, 15L, 15L, 15L, 15L, 1L, 1L, 1L, 1L, 1L, 1L, 19L, 1L), 
    X08.00 = c(23, 23, 1, 15, 15, 15, 15, 7.5, 22, 15, 1, 2, 
    1, 19, 2), X09.00 = c(2, 10, 23, 15, 15, 23, 14, 7.5, 22, 
    15, 5, 10, 5, 19, 19), X10.00 = c(23, 23, 23, 23, 23, 23, 
    14, 7.5, 7.5, 15, 5, 10, 5, 19, 5), X11.00 = c(23, 23, 23, 
    23, 23, 23, 14, 7.5, 7.5, 15, 16, 5, 5, 19, 5), X12.00 = c(23, 
    23, 23, 23, 23, 23, 14, 7.5, 7.5, 15, 16, 5, 5, 15, 2), X13.00 = c(23, 
    23, 23, 23, 23, 23, 14, 7.5, 7.5, 2, 16, 5, 2, 2, 5), X14.00 = c(12, 
    23, 23, 23, 23, 8, 11, 22, 7.5, 15, 1, 5, 5, 1, 5), X15.00 = c(12L, 
    12L, 12L, 23L, 23L, 8L, 11L, 22L, 16L, 16L, 1L, 15L, 5L, 
    1L, 5L), X16.00 = c(15, 12, 4, 7.7, 23, 8, 11, 22, 12, 19, 
    1, 15, 22, 1, 5), X17.00 = c(15, 23, 4, 7.7, 15, 8, 11, 22, 
    12, 19, 1, 23, 22, 7.5, 16), X18.00 = c(23, 23, 15, 7.7, 
    15, 15, 15, 22, 15, 19, 15, 23, 22, 7.5, 16), X19.00 = c(23, 
    23, 15, 7.7, 23, 2, 15, 7.5, 15, 19, 17, 23, 22, 7.5, 7.5
    ), X20.00 = c(23, 23, 15, 2, 17.1, 15, 15, 7.5, 2, 2, 17, 
    23, 2, 2, 2), X21.00 = c(2, 23, 2, 15, 17.1, 15, 15, 7.5, 
    2, 15, 12, 23, 17, 23, 23), X22.00 = c(23, 23, 2, 15, 23, 
    23, 15, 7.5, 7.5, 15, 12, 23, 17, 23, 23), X23.00 = c(23, 
    7, 23, 15, 23, 1, 1, 1, 7.5, 15, 17, 16, 17, 1, 23)), row.names = c(NA, 
15L), class = "data.frame", na.action = structure(16:41, .Names = c("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"), class = "omit"))

您可以使用tidyverse的
pivot\u longer()
函数

假设您的数据帧称为数据,您可以执行以下操作:


data <- data %>% pivot_longer(
  !Day, #Every Column Except Day Will Be Pivoted
  names_to = "Hour", #What do we call the new column?
  values_to = "Activity" #Where will the activities go?
  
)

数据%pivot\u更长(
!Day,#除Day之外的所有列都将以轴为轴
name_to=“Hour”#我们如何称呼新列?
values_to=“Activity”#活动将走向何方?
)
请在此处阅读更多信息: