Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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,我已读取.csv文件,其中包含一列,我想用该列将两个字符串替换为值0和1 这是我的dput(头(数据)): 结构(列表(年龄=c(39L、50L、38L、53L、28L、37L), 工资=结构(c(1L,1L,1L,1L,1L,1L,1L),.Label=c(“50K”),class=“factor”),.Names=c(“年龄”,“工资”),row.Names=c(NA, 6L),class=“数据帧”) “薪资”列当前有“50K”,我希望前者替换为0,后者替换为1。这就是我目前正在做的:

我已读取.csv文件,其中包含一列,我想用该列将两个字符串替换为值0和1

这是我的
dput(头(数据))

结构(列表(年龄=c(39L、50L、38L、53L、28L、37L), 工资=结构(c(1L,1L,1L,1L,1L,1L,1L),.Label=c(“50K”),class=“factor”),.Names=c(“年龄”,“工资”),row.Names=c(NA, 6L),class=“数据帧”) “薪资”列当前有“50K”,我希望前者替换为0,后者替换为1。这就是我目前正在做的:

> transform(data, Salary=c("<=50K"=0, ">50K"=1)[as.character(Salary)])
>转换(数据,薪资=c(“50K”=1)[as.字符(薪资)])
但是,我认为字符串包含数学符号是一个问题。我得到以下错误:

Error: unexpected '<=' in "transform(data, Salary=c(<="

错误:意外“在提供的链接中,最后一列只有两个“唯一”值。将值重新编码为“0,1”的一种方法是将列转换为“factor”,并强制转换为“numeric”(
as.numeric
)。这将根据因子的级别给出“1,2”,减去“1”,得到正确的重新编码值,即“0,1”

unique(数据$V15)
#[1] “5万”

数据$V15因为工资是一个与级别相关的因素:

> levels(data$Salary)
[1] " <=50K" " >50K" 
>级别(数据$Salary)
[1] “5万”
试试这个:

levels(data$Salary) <- 0:1

级别(数据$Salary)您可以尝试:
转换(数据,大小=(大小=“>1”)+0L)
(在没有样本数据的情况下未测试)我无法再现错误。您可能必须使用
dput
显示示例数据集。错误消息没有显示
@akrun周围的任何
”。使用此数据集可以完全复制我的问题:其中最后一列为50。我将如何分别将其设为0和1?我希望如此helps@Phibert我的评论基于
set.seed(24);正是使用这个数据,我在期末考试中的每个条目都得到NAcolumn@Phibert你能把
头(数据)
的dput显示出来并在你的帖子里更新吗?我已经把它添加到我的帖子里了。我只对年龄和薪水感兴趣,所以已经删除了所有其他的columns@Phibert根据您的dput输出,
as.numeric(数据$Salary)[1]1
,工资已经是两个级别的一个因素。因此,我不知道为什么您会得到不同的结果。抱歉,我肯定遗漏了一些内容。这也给了我一个错误。对于我在这里缺乏知识,我深表歉意
  url <- 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'

  library(RCurl)
  x <- getURL(url, ssl.verifypeer=FALSE)
  data <- read.csv(textConnection(x), stringsAsFactors=FALSE, header=FALSE)
> levels(data$Salary)
[1] " <=50K" " >50K" 
levels(data$Salary) <- 0:1