Другие два варианта:
Базовый пакет:
df <- unstack(dat1, form = value ~ numbers)
rownames(df) <- unique(dat1$name)
df
sqldf
package:
library(sqldf)
sqldf('SELECT name,
MAX(CASE WHEN numbers = 1 THEN value ELSE NULL END) x1,
MAX(CASE WHEN numbers = 2 THEN value ELSE NULL END) x2,
MAX(CASE WHEN numbers = 3 THEN value ELSE NULL END) x3,
MAX(CASE WHEN numbers = 4 THEN value ELSE NULL END) x4
FROM dat1
GROUP BY name')
Соотношение пикселей устройства - это соотношение между физическими пикселями и логическими пикселями. Например, iPhone 4 и iPhone 4S сообщают о соотношении пикселей устройства в 2, потому что физическое линейное разрешение удваивает логическое линейное разрешение.
Формула:
[/g15]
Где:
[/g16] является физическим линейным разрешением
и:
[/g17] является логическим линейным разрешением
Другие устройства сообщают о различных соотношениях пикселей устройства, включая нецелые. Например, Nokia Lumia 1020 сообщает 1.6667, Samsumg Galaxy S4 сообщает 3, а Apple iPhone 6 Plus сообщает 2.46 (источник: dpilove ) . Но это ничего не меняет в принципе, так как вы никогда не должны проектировать ни одно конкретное устройство.
«пиксель» CSS даже не определен как «один элемент изображения на некоторый экран ", а скорее как нелинейное угловое измерение угла наблюдения [/g18], которое составляет приблизительно [/g19] дюйма на расстоянии вытянутой руки. Источник: Абсолютные длины CSS
Это имеет большое значение, когда дело доходит до веб-дизайна, например, для подготовки изображений изображений высокой четкости и тщательного применения различных изображения при разных соотношениях пикселей устройства. Вы не захотите заставить низкоуровневое устройство загружать изображение с очень высоким разрешением, только для его локализации.
Если вы застряли с растровыми изображениями, чтобы соответствовать различным соотношениям пикселей устройства, вы должны использовать CSS Media Queries для предоставления различных наборов ресурсов для разных групп устройств. Объедините это с хорошими трюками, такими как background-size: cover
, или явно установите процентные значения background-size
.
#element { background-image: url('lores.png'); }
@media only screen and (min-device-pixel-ratio: 2) {
#element { background-image: url('hires.png'); }
}
@media only screen and (min-device-pixel-ratio: 3) {
#element { background-image: url('superhires.png'); }
}
Таким образом, каждый тип устройства загружает только правильный ресурс изображения. Также имейте в виду, что блок px
в CSS всегда работает с логическими пикселями.
Поскольку появляется все больше и больше типов устройств, становится сложнее предоставить все из них имеют адекватные растровые ресурсы. В CSS запросы на медиа в настоящее время являются единственным способом, а в HTML5 элемент изображения позволяет использовать разные источники для разных мультимедийных запросов, но поддержка по-прежнему не на 100%, поскольку большинство веб-разработчиков по-прежнему вынуждены поддержка IE11 еще некоторое время (источник: caniuse ) .
Если вам нужны четкие изображения для значков, линий, элементов дизайна, которые не являются фотографии, вы должны начать думать о SVG, который прекрасно масштабируется для всех разрешений.
В мире веб-разработки отношение пикселя устройства (также называемое соотношением пикселей CSS) определяет, как CSS-разрешение устройства интерпретируется CSS.
CSS-браузер браузера вычисляет логическое (или интерпретируемое) разрешение устройства по формуле:
[/g5]
Например:
Apple iPhone 6s
[/g6]
При просмотре веб-страницы, CSS будет считать, что устройство имеет экран разрешения [37] и разрешение будет реагировать так, как если бы экран был 375x667 . Но отображаемые элементы на экране будут в два раза более острыми, чем фактический экран 375x667, потому что на физическом экране в два раза больше физических пикселей.
Некоторые другие примеры:
Samsung Galaxy S4
[/g7]
iPhone 5s
[/g8]
Причина, по которой отношение пикселов CSS был создан потому, что, поскольку экраны телефонов получают более высокие разрешения, если у каждого устройства по-прежнему имеется коэффициент пикселя CSS, равный 1, то веб-страницы будут казаться слишком маленькими, чтобы видеть.
Типичный полноэкранный настольный монитор составляет примерно 24 дюйма на Разрешение 1920x1080. Представьте, что этот монитор был сокращен примерно до 5 дюймов, но имел такое же разрешение. Просмотр вещей на экране будет невозможно, потому что они будут такими маленькими. Но производители сейчас выпускают экраны с разрешением 1920x1080.
Таким образом, соотношение пикселей устройства было изобретено производителями телефонов, чтобы они могли продолжать нажимать разрешение, резкость и качество экранов телефонов, не создавая элементов на экране слишком мало, чтобы видеть или читать.
Вот инструмент, который также сообщает вам плотность пикселей вашего текущего устройства:
http://bjango.com/articles / мин-устройства пиксел соотношение /
width: 100%
будет представлять собой полную ширину дисплея. Он не будет растянут. Экран & quot; думает & quot; это дисплей на 300 пикселей. Изображения отображаются в соответствии с логическим / css разрешением. Теперь в вашем примере вы можете вместо этого использовать изображение 600 пикселей. Это будет полная ширина логического дисплея 300 пикселей, но поскольку ваш дисплей является родным размером 600 пикселей, изображение будет выглядеть в два раза быстрее, чем ваше оригинальное изображение 300 пикселей. Большее изображение, но оно выглядит лучше, поскольку на дисплее есть все эти дополнительные пиксели. Это идея, стоящая за «Retina Displays».
– Jake Wilson
6 January 2016 в 19:37
https://developer.mozilla.org/en/CSS/Media_queries#-moz-device-pixel-ratio
-moz-device-pixel -ratio Дает количество пикселей устройства на пиксель CSS.
blockquote>это почти самоочевидно. число описывает отношение количества «реальных» пикселей (физических пикселов экрана) для отображения одного «виртуального» пикселя (размер устанавливается в CSS).
Статья Бориса Смуса Высокие изображения DPI для переменной плотности пикселей имеют более точное определение соотношения пикселей устройства: количество пикселов устройства на пиксель CSS является хорошим приближением, но не всей историей.
Обратите внимание, что вы можете получить DPR, используемый устройством с window.devicePixelRatio
.
width=device-width
, я буду растягиваться до полного экрана? – ilyo 9 January 2012 в 10:44background-image
, вы можете комбинировать его с-webkit-background-size:50%
, так как в противном случае размер изображения будет соответствовать количеству пикселей logical . w3.org/TR/2002/WD-css3-background-20020802/#background-size – Anders Tornblad 9 January 2012 в 12:41background-size
для оптимального использования дисплея. – Anders Tornblad 9 January 2012 в 14:37