R 替换列中的值
这是我的数据框示例:R 替换列中的值,r,dataframe,replace,R,Dataframe,Replace,这是我的数据框示例: I UserID | Day_of_week | hour | min #1 1 1 0 0 #2 1 1 0 30 #3 1 1 1 0 #4 1 1 1 30 #5 1
I UserID | Day_of_week | hour | min
#1 1 1 0 0
#2 1 1 0 30
#3 1 1 1 0
#4 1 1 1 30
#5 1 1 2 0
#6 1 1 2 30
... ... ... ... ...
#10 1 2 0 0
#11 1 2 0 30
#12 1 2 1 0
#13 1 2 1 30
... ... ... ... ...
列Day_of_week从1变为7,其中:
2=星期一,3=星期二。。。。6=星期五
7号和1号分别是星期六和星期天
我想在周的第天的列中更改周的名称。大概是这样的:
I UserID | Day_of_week | hour | min
#1 1 Sunday 0 0
#2 1 Sunday 0 30
#3 1 Sunday 1 0
... ... ... ... ...
#10 1 Monday 0 0
#11 1 Monday 0 30
#12 1 Monday 1 0
#13 1 Monday 1 30
... ... ... ... ...
制作一个带数字的函数
library(dplyr)
day_of_week <- function(num){
ifelse(num == 1, "Sunday",
ifelse(num ==2, "Monday",
ifelse(num == 3, "Tuesday",
ifelse(num == 4, "Wednesday",
ifelse(num == 5, "Thursday",
ifelse(num == 6, "Friday", "Saturday"))))))
}
制作一个带数字的函数
library(dplyr)
day_of_week <- function(num){
ifelse(num == 1, "Sunday",
ifelse(num ==2, "Monday",
ifelse(num == 3, "Tuesday",
ifelse(num == 4, "Wednesday",
ifelse(num == 5, "Thursday",
ifelse(num == 6, "Friday", "Saturday"))))))
}
我认为可以将列转换为因子变量 你可以试试下面的方法
df$day_of_week <- factor(df$day_of_week,
labels = c("Sunday", "Monday","Tuesday","Wednesday", "Thursday", "Friday", "Saturday"),
levels = c(1,2,3,4,5,6,7))
df$day\u of_week我认为您可以将该列转换为因子变量
你可以试试下面的方法
df$day_of_week <- factor(df$day_of_week,
labels = c("Sunday", "Monday","Tuesday","Wednesday", "Thursday", "Friday", "Saturday"),
levels = c(1,2,3,4,5,6,7))
df$day\u of_week只需使用一个向量即可
dow <- c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
set.seed(2)
df <- data.frame(Day_of_week = sample(7, size=20, replace=TRUE))
head(df)
# Day_of_week
# 1 2
# 2 5
# 3 5
# 4 2
# 5 7
# 6 7
df$Day_of_week <- dow[df$Day_of_week]
head(df)
# Day_of_week
# 1 Monday
# 2 Thursday
# 3 Thursday
# 4 Monday
# 5 Saturday
# 6 Saturday
只需使用一个向量
dow <- c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
set.seed(2)
df <- data.frame(Day_of_week = sample(7, size=20, replace=TRUE))
head(df)
# Day_of_week
# 1 2
# 2 5
# 3 5
# 4 2
# 5 7
# 6 7
df$Day_of_week <- dow[df$Day_of_week]
head(df)
# Day_of_week
# 1 Monday
# 2 Thursday
# 3 Thursday
# 4 Monday
# 5 Saturday
# 6 Saturday
dowlibrary(expss)
#创建类似您的示例数据集
每周的第天库(expss)
#创建类似您的示例数据集
如果将数字添加到星期六的任何特定日期,将数字转换为日期,则可以使用base::weekdays
功能:
df 1 1 0 0周日
#>2121030星期日
#>3 3 11 10星期日
#>4 4 1 30星期日
#>5 5 11 20星期日
#>611230星期日
#>710120星期一
#>81112030星期一
#>912110星期一
#>101311230星期一
如果将数字添加到星期六的任何特定日期,将数字转换为日期,则可以使用base::weekdays
功能:
df 1 1 0 0周日
#>2121030星期日
#>3 3 11 10星期日
#>4 4 1 30星期日
#>5 5 11 20星期日
#>611230星期日
#>710120星期一
#>81112030星期一
#>912110星期一
#>101311230星期一
我认为向量索引应该足够了,你尝试过什么?c(“星期日”、“星期一”、“星期六”)[x$Day\u of\u week]
?但我需要读取值在“星期几”列中,按周名称进行更改。如果(day_of_week==1),你可以使用weekdays
生成一个向量子集:df$day_of_week@r2evans(不,很遗憾,我需要找一份工作来支付我去做这类事情的费用。或者使用R,就这一点而言…)我认为向量索引应该足够了,你试过什么?c(“星期日”、“星期一”、“星期六”)[x$day_of_week]
?但我需要读取值在“星期几”列中,按周名称进行更改。如果(一周中的一天==1),你可以使用工作日
生成一个向量来子集:df$day\u of_周@r2evans(不,很遗憾,我需要找一份工作来支付我去做这些事情的费用。或者使用R,就这点而言……)史蒂文:我赞赏你的顽强,但这是非常低效的。我强烈鼓励使用矢量化索引,正如我在评论中所建议的那样。@r2evans在我的研究生时代学习R的许多结果之一是我通过“暴力”做了很多事情;史蒂文:我赞赏你在这里的顽强,但这是非常低效的。我强烈鼓励使用矢量化索引,正如我在评论中所建议的那样。@r2evans在我的研究生时代学习R的许多结果之一是我通过“暴力”做了很多事情;我将开始将其构建到我的工作流程中。你是说我应该完成工作日的名称和级别,对吗?你能详细说明一下,让我自己更正一下吗?你的意思是说我应该完成工作日的名称和级别,对吗?你能详细说明一下吗?这样我就可以纠正自己了。