如何匹配输入的字符串并将其作为数字读取?

时间:2018-05-13 18:37:04

标签: r

我正在接受一个作为输入的字符串,然后将其与一个数字匹配,并将字符串作为输出返回。

示例:

my.string <- readline(prompt="Enter string 1: ")

print(my.string)
#[1] "coffee"

数据帧:

ID     name
22     coffee
23     tea
24     milk

任务:

  

我需要转换咖啡&#39;因为我想将这个号码传入一个   功能

我如何得到它?

2 个答案:

答案 0 :(得分:2)

我建议,如果您的data.frame只有2列,那么使用named向量将是一个值得考虑的选项。它提供了简单的子集方式。

在我看来,name列在您的data.frame中是唯一的。如果是这样,那么您可以将name列转换为rownames,然后选择将更加简单。

#change the 'name' to rownames
rownames(df) <- df$name
df$name <- NULL

#Now selection will be much easier
df[my.string, "ID"]
#22

使用“命名矢量”:

itemVector <- c(22,23,24)
names(itemVector) <- c("coffee", "tea", "milk")
itemVector[my.string]
# coffee 
# 22 

数据:

df <- read.table(text = 
                  "ID     name
                  22     coffee
                  23     tea
                  24     milk",
header = TRUE, stringsAsFactors = FALSE)

答案 1 :(得分:1)

就像我的评论所说,这是相当简单的。

my.string <- readline(prompt="Enter string 1: ")

inx <- which(DataFrame$name == my.string)
DataFrame$ID[inx]
#[1] 22

数据。

DataFrame <- read.table(text = "
ID     name
22     coffee
23     tea
24     milk
", header = TRUE)