как сопоставить строку из ввода и прочитать его как число? - PullRequest
0 голосов
/ 13 мая 2018

Я беру строку, заданную в качестве входных данных, а затем сопоставляю ее с числом и возвращаю обратно строку как положенную.

Пример:

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

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

DataFrame:

ID     name
22     coffee
23     tea
24     milk

Задача:

Мне нужно преобразовать «кофе» в 22, потому что я хочу передать это число в функцию.

Как мнеполучить это?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Я полагаю, если ваш data.frame имеет только 2 столбца, то использование named vector было бы целесообразным вариантом. Это обеспечивает простой способ подмножества.

Мне кажется, что столбец 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)
0 голосов
/ 13 мая 2018

Как сказал мой комментарий, это довольно просто.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...