Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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 - Fatal编程技术网

使用R如何将列中的数据从字母更改为单词

使用R如何将列中的数据从字母更改为单词,r,R,我的电子表格中有一列名为CourseType,该列中的值为O、OS或C。我想将这些字母改为在线、现场阅读 我如何使用R来实现这一点 谢谢 Paul假设数据帧名为df,列名为CourseType,如果要替换的选项有限,则可以使用ifelse语句。这类似于excel中的嵌套IF-ELSE: df$CourseType_new <- ifelse(df$CourseType == "O", "Online", ifelse(df$CourseType

我的电子表格中有一列名为CourseType,该列中的值为O、OS或C。我想将这些字母改为在线、现场阅读

我如何使用R来实现这一点

谢谢
Paul

假设数据帧名为df,列名为CourseType,如果要替换的选项有限,则可以使用
ifelse
语句。这类似于excel中的嵌套IF-ELSE:

df$CourseType_new <- ifelse(df$CourseType == "O", "Online", 
                     ifelse(df$CourseType == "OS", "OnSite", "something else"))

df$CourseType\u new假设数据帧名为df,列名为CourseType,如果要替换的选项有限,则可以使用
ifelse
语句。这类似于excel中的嵌套IF-ELSE:

df$CourseType_new <- ifelse(df$CourseType == "O", "Online", 
                     ifelse(df$CourseType == "OS", "OnSite", "something else"))

df$CourseType\u new如果您想避免
ifelse
级联(例如,在许多不同代码的情况下),您可以使用以下方法:

# Construct example data
df <- data.frame(CourseType = c("C", "O", "O", "OS", "OS", "C"), teacher = c("Joe", "Jane"), stringsAsFactors = FALSE)
df
#   CourseType teacher
# 1          C     Joe
# 2          O    Jane
# 3          O     Joe
# 4         OS    Jane
# 5         OS     Joe
# 6          C    Jane

# Do recode by filtering the lines
df$CourseType[df$CourseType == "O"]  <- "Online"
df$CourseType[df$CourseType == "OS"] <- "OnSite"

df
#    CourseType teacher
# 1          C     Joe
# 2     Online    Jane
# 3     Online     Joe
# 4     OnSite    Jane
# 5     OnSite     Joe
# 6          C    Jane

# Note: The non-matching CourseTypes are left unchanged!
然后可以将
NA
值(表示重新编码失败)设置为默认值,例如。g

df$CourseTypeRecoded[is.na(df$CourseTypeRecoded)] <- "(invalid code)"

df$CourseTypeRecoded[is.na(df$CourseTypeRecoded)]如果您想避免
ifelse
级联(例如,在许多不同代码的情况下),您可以使用以下方法:

# Construct example data
df <- data.frame(CourseType = c("C", "O", "O", "OS", "OS", "C"), teacher = c("Joe", "Jane"), stringsAsFactors = FALSE)
df
#   CourseType teacher
# 1          C     Joe
# 2          O    Jane
# 3          O     Joe
# 4         OS    Jane
# 5         OS     Joe
# 6          C    Jane

# Do recode by filtering the lines
df$CourseType[df$CourseType == "O"]  <- "Online"
df$CourseType[df$CourseType == "OS"] <- "OnSite"

df
#    CourseType teacher
# 1          C     Joe
# 2     Online    Jane
# 3     Online     Joe
# 4     OnSite    Jane
# 5     OnSite     Joe
# 6          C    Jane

# Note: The non-matching CourseTypes are left unchanged!
然后可以将
NA
值(表示重新编码失败)设置为默认值,例如。g

df$CourseTypeRecoded[is.na(df$CourseTypeRecoded)] <- "(invalid code)"

df$CourseTypeRecoded[is.na(df$CourseTypeRecoded)]谢谢,我会试试这个。谢谢,我会试试这个。欢迎来到SO!请注意,问题应包含构成示例数据的R中的最小可再现示例。同时指出示例数据的预期结果。这使我们更容易回答(不浪费时间,并确保提供您需要的)。THX:-)您是否也(暗示)询问如何读取Excel文件或“只是”如何重新编码列值?欢迎来到SO!请注意,问题应包含构成示例数据的R中的最小可再现示例。同时指出示例数据的预期结果。这使我们更容易回答(不浪费时间,并确保提供您需要的)。THX:-)您是否(隐式地)询问如何读取Excel文件或“只是”如何重新编码列值?